javaSE(一)

版权声明:博主原创,转发请私信。 https://blog.csdn.net/YooFale/article/details/82732708

1.关于注释
单行注释可以嵌套,多行注释不能嵌套

2.关键字

字母全部小写(goto和const作为保留字,目前不使用)

3.标识符

不能数字开头||不能用关键字||区分大小写||不能有空格||符号只有$和_

4.命名

包名全部小写(公司域名倒着写)

扫描二维码关注公众号,回复: 3740010 查看本文章

类或者接口(单个单词首字母大写,多个单词每个单词首字母大写HelloWorld)驼峰命名

方法和变量(一个单词小写,多个单词第二个开始首字母大写)

常量(一个单词所有字母大写,多个单词全部大写,中间使用_)

5.常量

字符常量         单引号括起来的内容  只能放单个数字(0-9),字母,符号

字符串常量     双引号括起来的内容

整数常量

小数常量

布尔常量

空常量

6.进制

权重1 2 4 8 16 32 64 128 快速转换为二进制

二进制转八进制3个一组         111 100(60为例子)

二进制转十六进制4个一组      0011 1100(60位为例)

7.原码反码补码

最高位符号位 0正1负(共8位,一个符号位,七个数位)

正数原码反码补码都一样

对负数而言:

反码:符号位不变,原码逐位取反

补码:反码末尾加一

计算机的运算是补码形式的。符号位加起来超过8位,超过8位部分的舍去。

原码补码之间的转换多借用反码作为媒介。

8.变量

数据类型

整数类型

byte     1        -2^7~2^7-1

short   2        -2^15~2^15-1

int        4        -2^23~2^23-1

long     8        -2^31~2^31-1(默认int,转化为long加L,小l和1难区分)

浮点类型

float          4  单精度

double      8  双精度(默认double)

字符类型

char          2

布尔类型   理论上是八分之一

9.数据类型转换

隐式转换

int类型和byte类型相加,byte转换为int。byte长度1,int长度4,相加byte自动加3。

强制转换

(byte)可能丢失

    byte b1 =2;
	byte b2 =4;
	byte b3 =b1+b2; 
    byte b4 =2+4;
	System.out.println(b3);

java有常量优化机制,所以常量相加是直接赋值的

这样会报错:

Type mismatch: cannot convert from int to byte

报错:类型不匹配,byte类型运算会自动变为int,不能用byte类型接收。

其他原因分析:变量存储的值是变化的,两个相加,可能会超出类型取值的范围。

转化规则:byte,short,char->int->long->float->double

10.long和float的取值范围谁大问题

float比long大。

4个字节比8个字节大的原因?

①底层存储结构不同

②float4个字节,32个二进制位,其中1个符号位,8个指数位,23个尾数位。指数在-126到127之间,明显比31大,也就是比-2^31~2^31-1大。

11.字符和字符串参与运算

字符会根据ASC表自动转化为int,如a是97

System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");

输出结果:

helloa1
98hello

原因:任何数据类型用+和字符串连接都会成为字符串。

System.out.println("5+5="+5+5);
System.out.println("5+5="+(5+5));

括号提高优先级,所以输出结果为:

5+5=55
5+5=10

12.char类型

char c1 = 97;
	System.out.println(c1);

根据ASC表 输出的是a   char取值范围0到65535

char是否可以存储中文?

可以,java中使用的是Unicode编码,Unicode中每个字符占用2个字节,而中文也是两个字节。

13.算术运算符

/:整数相除只能得到整数

%:取模(符号只和左边有关系,和右边无关)

13%-5      3  

-13%5    -3

任何正整数%2只能是0或者1,用来做切换条件。

14.a++和++a

b=a++;       //a先把值赋给b,再自增

c=--a;        //a先自减,再赋值给c

练习题:

    int x =4;
	int y =(x++)+(++x)+(x*10);
	System.out.println("x="+x+",y="+y);

                                                           4

                          当前位置的值      x的值

 x++                       4                           5 

 ++x                       6                           6

x*10                      60

4+6+60=70

byte类型的变量,b++可以直接输出,b+1则会报错。所以++有强转功能。

15.赋值运算符

+= -= *= %=

和++一样+=,也有隐式转换功能。

16.关系运算符

>=  <=  ==  !=等

猜你喜欢

转载自blog.csdn.net/YooFale/article/details/82732708