03.01 数据类型中补充的几个小问题

1:在定义Long或者Float类型变量的时候,要加L或者f。

  整数默认是int类型,浮点数默认是double。

  byte,short在定义的时候,他们接收的其实是一个int类型的值。 

2:数据类型转换之默认转换:byte,short,char→int→long→float→double

   为什么占用8个字节的long默认转换为4个字节的float?

   A:它们底层的存储结构不同。

   B:float表示的数据范围比long的范围要大

      long:2^63-1

      float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1

3:Java语言中的字符char可以存储一个中文汉字吗?为什么呢?

   可以。因为java语言中的字符占用两个字节。Java语言采用的是Unicode编码。

03.02 算术运算符的基本用法

运算符:对常量和变量进行操作的符号称为运算符

运算符分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符6种

算术运算符:+(加)、-(减)、*(乘)、/(除)、%(取余或取模,两个数相除的余数)、+(连接符)、++(自增)、--(自减)

例:

 int x = 3;
int y = 4;
System.out.println(x + y); //
System.out.println(x - y); //-1
System.out.println(x * y); //
System.out.println(x / y); //0,/获取的是除法操作的商
System.out.println(x % y); //3,%获取的是除法操作的余数

注意:整数相除只能得到整数,如果想得到小数,只需把操作的数据中的任意的一个数据变为浮点数即可

如:System.out.println(x * 1.0 / y);  //0.75

03.03 算术运算符++和--的用法

例1:单独使用时

 int x = 3;
int y = 4;
System.out.println("x="+x+",y="+y); //x=3,y=4
x++;
--y;
System.out.println("x="+x+",y="+y); //x=4,y=3

单独使用时放在操作数据的前面和后面效果一样。也就是a++或者++a效果一样。

例2:参与操作时

 int x = 3;
int y = 4;
int a = x++;
int b = --y;
System.out.println("x="+x+",y="+y); //x=4,y=3
System.out.println("a="+a+",b="+b); //a=3,b=3

参与操作时放在操作数的前面:先自增或者自减,再参与操作

           放在操作数的后面:先参与操作,再自增或者自减

例3:特殊情况

 int i = 3;
i = i++;
System.out.println("i="+i); //i=3

i=i++,先进行i++运算,此时虚拟机会开辟新的空间临时存储i的值,然后进行i++的运算,将运算结果4赋给i,i=4,此时i++运算完成,然后将临时存储的i的值又赋给i,i=3

03.04 算术运算符++和--的练习

1.计算a、b、c的值

 int a = 10;
int b = 10;
int c = 10;
a = b++;
c = --a;
b = ++a;
a = c--;
System.out.println("a="+a); //a=9
System.out.println("b="+b); //b=10
System.out.println("c="+c); //c=8

2.计算x、y的值

 int x = 4;
int y = (x++)+(++x)+(x*10); //4+6+60
System.out.println("x="+x); //x=6
System.out.println("y="+y); //y=70

03.05 算术运算符+的多种用法

+的用法:加法、正号、字符串连接符

例:

 System.out.println(3 + 4);  //加法,7
System.out.println(+5); //正号,5
System.out.println("hello"+'a'+1); //字符串连接符,helloa1

03.06 赋值运算符的基本用法

基本的赋值运算符[=(赋值)]

扩展的赋值运算符[+=(左加)、-=(左减)、*=(左乘)、/=(左除)、%=(左取模)]

例:

 int y = 10;
y += 20; //相当于y = y + 20;
System.out.println("y="+y); //y=30

03.07 赋值运算符的面试题

面试题:

short s = 1,s = s+1; 

short s = 1,s += 1;

两句代码是否有问题?

short s = 1,s = s+1;有问题,s+1的结果为int型,不能赋值给short 型的s

short s = 1,s += 1;没有问题,s += 1隐含了一个强制类型转换,相当于 s = (short)(s+1);扩展的赋值运算符都有这个特点

03.08 比较运算符的基本用法及其注意事项

比较运算符:==(相等)、!=(不等)、<(小于)、>(大于)、<=(小于等于)、>=(大于等于)

注意:

1.比较运算符运算完的结果必须是true或false

2.比较运算符"=="不能写成"="

03.09 逻辑运算符的基本用法

逻辑运算符:&(与)、|(或)、^(异或)、!(非)、&&(双与)、||(双或)

逻辑运算符用于连接两个boolean类型的表达式

 

&(与)符号的运算规律:&运算的两边有一个是false结果就是false,只有两边都为true,结果才为true

|(或)符号的运算规律:|运算的两边有一个是true结果就是true,只有两边都为false,结果才为false

^(异或)符号的运算规律:|运算的两边结果相同,结果为false,两边结果不同,结果为true

!(非)符号的运算规律:判断事物的另一面,例:!true=false   !false=true

03.10 逻辑运算符&&和&的区别

&&(双与)符号的运算规律:与&(与)符号的运算规律相同

||(双或)符号的运算规律:与|(或)符号的运算规律相同

 

&(单与)与&&(双与)的区别:

&(单与),不管运算的左边的结果为true或false,都会运算右边的表达式的结果

&&(双与),当运算符左边的结果为false时,不会运算右边表达式的值,因为最终结果为false

|(单或)与||(双或)的区别:

|(单或),不管运算的左边的结果为true或false,都会运算右边的表达式的结果

||(双或),当运算符左边的结果为true时,不会运算右边表达式的值,因为最终结果为true

03.11 位运算符的基本用法1

位运算符:&(与运算)、|(或运算)、^(异或运算)、~(反码)

位运算是直接对二进制进行运算

例:

 

03.12 位异或运算符的特点

特点:一个数异或同一个数两次,结果还是这个数

03.13 位运算的面试题

不使用第三方变量实现两个整数的互换

方式1

a = a ^ b;    

b = a ^ b; // b = a ^ b ^ b = a;       

a = a ^ b; // a = a ^ b ^ a = b;         

方式2

a = a + b;

b = a - b; // b = a + b - b = a;

a = a - b; // a = a + b - a = b;

方式3 

b = (a + b) - (a = b);

03.14 位运算符的基本用法2及面试题

位运算符:<<(左移)、>>(右移)、>>>(无符号右移)

<<(左移):符号位不变,低位补零,每左移一位相当于乘以2

>>(右移):低位溢出,符号位不变,并用符号位补溢出的高位,每右移一位相当于除以2

>>>(无符号右移):低位溢出,高位补零

例:

面试题:用最有效率的方式计算2乘以8的结果

2<<3

03.15 三元运算符的基本用法

格式:(条件表达式)?表达式1:表达式2;

解释:条件表达式的结果为true,运算的结果是表达式1的值

      条件表达式的结果为false,运算的结果是表达式2的值

例:

 int x = 0,y;
y = (x > 1)?100:200;
System.out.println("y="+y); //y=200

03.16 三元运算符的练习

1.获取两个数中的最大值

 int x = 100;
int y = 200;
int max =(x > y)?x:y;
System.out.println("max="+max); //max=200

2.获取三个数中的最大值

 int x = 100;
int y = 300;
int z = 200;
int temp = (x > y)? x : y;
int max =(temp > z)?temp : z;
System.out.println("max="+max); //max=300

03.17 键盘录入的基本格式讲解

键盘录入数据概述:我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,所以,准备把数据改进为键盘录入,提高程序的灵活性。

键盘录入数据的步骤:

1.导包:(位置放到class定义的上面)import java.util.Scanner;

2.创建对象:Scanner sc = new Scanner(System.in);

3.接收数据:int x = sc.nextInt();

03.18 键盘录入的练习1

1.键盘录入两个数据,求和

 import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个数:");
int x = sc.nextInt();
System.out.println("请输入第2个数:");
int y = sc.nextInt();
System.out.println(x+"+"+y+"="+(x + y));
}
}

运行结果:

请输入第1个数:
23
请输入第2个数:
45
23+45=68

2.键盘录入两个数据,求最大值

 import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个数:");
int x = sc.nextInt();
System.out.println("请输入第2个数:");
int y = sc.nextInt();
int max = (x > y) ? x : y;
System.out.println("最大数是:"+max);
}
}

运行结果:

请输入第1个数:
45
请输入第2个数:
32
最大数是:45

03.19 键盘录入的练习2

键盘录入三个数据,求最大值

 import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个数:");
int x = sc.nextInt();
System.out.println("请输入第2个数:");
int y = sc.nextInt();
System.out.println("请输入第3个数:");
int z = sc.nextInt();
int temp = (x > y) ? x : y;
int max = (temp > z) ? temp : z;
System.out.println("最大数是:"+max);
}
}

运行结果:

请输入第1个数:
34
请输入第2个数:
6
请输入第3个数:
4
最大数是:34

03.20 顺序结构语句

流程控制语句分类:顺序结构、选择结构、循环结构

顺序结构概述:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。

总的来说:写在前面的先执行,写在后面的后执行

流程图:

03.21 选择结构if语句格式1

选择结构也被称为分支结构。

选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

Java语言提供了两种选择结构语句

if语句和switch语句

 

if语句第1种格式:

if(关系表达式)

{

   语句体;

}

执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体,如果是false就不执行语句体

流程图:

例:

 int x = 3;
if(x > 1)
{
System.out.println("yes");
}
System.out.println("over");

03.22 选择结构if语句注意事项

注意事项:

1.关系表达式无论简单还是复杂,结果必须是boolean类型

2.当if控制的语句是单条语句时,if的控制范围{ }可以省略,当if的{ }省略时,if只能控制离他最近的单条语句

当if控制的语句不是单条语句时,if的{ }不能省略。建议永远不要省略。

3.如果在if(条件表达式)后加了;表示没有执行语句的判断结构,if不会控制下面的语句,无论if的条件是true还是false,下面的语句都会执行

03.23 选择结构if语句格式2

if语句第1种格式:

if(关系表达式)

{

   语句体1;

}

else

{

   语句体2;

}

执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1,如果是false就执行语句体2

流程图:

例:

 int a = 3,b;
if(a > 1)
{
b = 100;
}
else
{
b = 200;
}
System.out.println("b="+b); //b=100

03.24 选择结构if语句格式2的练习

判断一个数是奇数还是偶数

 int a = 23;
if(a % 2 == 0)
{
System.out.println(a+"是偶数");
}
else
{
System.out.println(a+"是奇数");
}

运行结果:23是奇数

03.25 if语句的格式2和三元的相互转换问题

三元运算符其实就是if else的简写格式,if else 是通用格式

当if else运算后有一个具体的结果时,可以简化写成三元运算符

当if else语句控制的语句体是一条输出语句的时候,就不能写成三元运算符。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果。

03.26 选择结构if语句格式3

if语句第3种格式:

if(关系表达式1)

{

   语句体1;

}

else  if(关系表达式2)

{

   语句体2;

}

......

else

{

   语句体n+1;

}

执行流程

首先判断关系表达式1看其结果是true还是false

如果是true就执行语句体1

如果是false就继续判断关系表达式2看其结果是true还是false

如果是true就执行语句体2

如果是false就继续判断关系表达式...看其结果是true还是false

...

如果没有任何关系表达式为true,就执行语句体n+1。

流程图:

例:

 import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个成绩:");
int score = sc.nextInt();
if(score < 0 || score > 100)
{
System.out.println("数据错误");
}
else if(score >= 90)
{
System.out.println(score+"对应等级A");
}
else if(score >= 80)
{
System.out.println(score+"对应等级B");
}
else if(score >= 70)
{
System.out.println(score+"对应等级C");
}
else if(score >= 60)
{
System.out.println(score+"对应等级D");
}
else
{
System.out.println(score+"对应等级E");
}
}
}

03.27 选择结构if语句格式3的练习

键盘录入x的值,计算出y的并输出

x和y的关系满足如下:

x>=3      y = 2x + 1;

-1<=x<3    y = 2x;

x<=-1    y = 2x - 1;

 import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
int y = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int x = sc.nextInt();
if(x >= 3)
{
y = 2 * x + 1;
System.out.println("y=2*"+x+"+1="+y);
}
else if(x >= -1 && x < 3)
{
y = 2 * x;
System.out.println("y=2*"+x+"="+y);
}
else
{
y = 2 * x - 1;
System.out.println("y=2*"+x+"-1="+y);
}
}
}

03.28 选择结构if语句格式3的练习

键盘录入月份的值,输出对应的季节

春(3,4,5)、夏(6,7,8)、秋(9,10,11)、冬(12,1,2)

 import java.util.Scanner;
class Demo
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
int month = sc.nextInt();
if(month > 12 || month < 1)
{
System.out.println("输入的月份有误");
}
else if(month >= 3 && month <= 5)
{
System.out.println(month+"月对应春季");
}
else if(month >= 6 && month <= 8)
{
System.out.println(month+"月对应夏季");
}
else if(month >= 9 && month <= 11)
{
System.out.println(month+"月对应秋季");
}
else
{
System.out.println(month+"月对应冬季");
}
}
}

if语句的使用场景:

1.针对表达式是一个boolean类型的判断

2.针对一个范围的判断

03.29 选择结构if语句的嵌套使用

例:

 int a = 10;
int b = 30;
int c = 20;
int max;
if(a > b)
{
if(a > c)
{
max = a;
}
else
{
max = c;
}
}
else
{
if(b > c)
{
max = b;
}
else
{
max = c;
}
}
System.out.println("max:"+max);

JavaSE学习总结第03天_Java基础语法2的更多相关文章

  1. JavaSE学习总结第02天_Java基础语法1

      02.01 关键字的概述和使用 关键字概述:被Java语言赋予特定含义的单词 关键字特点:组成关键字的字母全部小写 关键字注意事项:goto和const作为保留字存在,目前并不使用,类似Notep ...

  2. JavaSE学习总结第04天_Java基础语法3

      04.01 选择结构switch语句的格式及其解释 switch语句的格式: switch(表达式) {    case 值1:语句体1;break;    case 值2:语句体2;break; ...

  3. JavaSE学习笔记(2)---面向对象基础

    JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象 ...

  4. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  5. web前端学习python之第一章_基础语法(一)

    web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  6. Python学习笔记(Ⅰ)——Python程序结构与基础语法

    作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...

  7. go 学习笔记之值得特别关注的基础语法有哪些

    在上篇文章中,我们动手亲自编写了第一个 Go 语言版本的 Hello World,并且认识了 Go 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 Go 语言的变 ...

  8. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  9. 03:Java基础语法(二)

    Java基础语法 Java运算符 算术运算符 运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等.1.操作数:参与运算的数据 称为操作数.2.表达式:运算符和操作数的整体 称为表达式.单独的一个 ...

随机推荐

  1. "笨方法学python"

    <笨方法学python>.感觉里面的方法还可以.新手可以看看... 本书可以:教会你编程新手三种最重要的技能:读和写.注重细节.发现不同.

  2. Protel99se教程一:建立一个数据库文件

    学习Protel99 SE的第一步,是建立一个DDB文件,也就是说,使用protel99se进行电路图和PCB设计,以及其它的数据,都存放在一个统一的DDB数据库中的 一.打开protel 99se后 ...

  3. qt5集成libcurl实现tftp和ftp的方法一:搭建环境(五篇文章)

    最近使用QT5做一个软件,要求实现tftp和ftp文件传输,使用QT5开发好UI界面等功能,突然发现QT5不直接提供tftp和ftp支持,无奈之下只好找第三方库来间接实现,根据网友的介绍,libcur ...

  4. .NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别

    原文http://www.cnblogs.com/mgen/archive/2011/12/04/2276238.html 比如这样一个类,我们用XmlArrayItem特性标明数组内出现的元素类型: ...

  5. javascript的this指向

    JavaScript 是一种脚本语言,支持函数式编程.闭包.基于原型的继承等高级功能.JavaScript一开始看起来感觉会很容易入门,但是随着使用的深入,你会发现JavaScript其实很难掌握,有 ...

  6. VS2015自定义注释内容

    一直想自动添加一些注释信息,找了好多种方式:各种插件什么的,最后偶然发现可以修改vs的模板可以做到,下面介绍如何改 首先找到vs的安装目录,如下是我的安装目录: D:\Program Files\VS ...

  7. css6种隐藏元素的方法

    6种方式可以隐藏一个元素: 1 CSS display的值是none.(该元素是不会在页面上显示)   2 type="hidden"的表单元素.(该元素是不会在页面上显示)   ...

  8. android http同步请求

    1.界面 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too ...

  9. 利用Apperance协议定义View的全局外观

    假设要定义一个全局的bkColor用于背景颜色 1.@property(nonatomic,strong)UIColor *bkColor UI_APPEARANCE_SELECTOR; 2.在下面方 ...

  10. iOS中的地图和定位

    文章摘自http://www.cnblogs.com/kenshincui/p/4125570.html#location  如有侵权,请联系删除. 概览 现在很多社交.电商.团购应用都引入了地图和定 ...