JAVA基础语法一

JAVA基础语法一

文档注释

/*
 *@Description
 *@Author
*/
各种奇葩的多行注释图片,百度搜索“有趣的代码注释”,学习的时候尽量给自己找一些乐趣就更开心想学了

关键字

标识符

大写A-Z/小写a-z,$,_开头
标识符大小写敏感的

基本类型

定义long类型在数字后面要加L,否则当做int处理
  long num4 = 30L;
定义float类型要在数字后面加个F,否则都是小数IDE默认当作double类型处理
  float num = 50.1F;
注意不用可以去记基本数据类型的取值范围,可以看基本类型的对应包装类int->Integer, byte->Byte里面会有最大值最小值定义.

位单位扩展

- 1bit->1位, 1Byte(字节) = 8b,1KB = 1024B...
- 32位电脑和64位电脑区别在于寻址能力
  32位寻址空间范围是2的32次方 4GB左右.64位最大寻址空间2的64次方,大约1亿GB,实际中电脑可带128G内存
  此外cpu有32位,64位之分。64位可装32位系统也可以装64位系统。运算速度不同,64位cpu可以运行64位数据指令

整数扩展进制

二进制0b前缀开头, 
八进制0开头, int i8 = 010;
十六进制0x开头, int i16 = 0x10 (0~9 A~F)

浮点数扩展银行业务怎么表示钱(BigDecimal)

***浮点数是有效离散含有误差的,接近但不等于,最好完全避免使用浮点数进行比较,而是使用类BigDecimal***
```java
	//float不精确,例1
	float f = 0.1f;
	double f = 0.1;
	Sysytem.out.println(f==d);//flase

	//例2
	float d1 = 2323232334234343434f;
	float d2 = d1 +1;
	Sysytem.out.println(d1==d2);//true

字符扩展

1. 字符和数字转换(强制转换&unicode)
所有的字符本质上还是数字,可以将字符强制转化位数字
在java中有unicode编码表,将字符和数字对应起来. 0 -65536(2的16次方) 表示范围U0000-UFFFF
char c3 = '\u0061';//表示a
2. 转义字符
\t 制表符
\n 换行

字符串扩展

```java
String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);//flase

String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//true

布尔值扩展

less is more,代码要精简易读
boolean flag = true;
if(flag == true) //不好
if(flag)//推荐

类型转换

自动转换方式

运算中,不同类型的数据先转换同一类型,然后进行运算
优先级 byte,short,char->int->long->float->double
自动转换方式:运算时自动将数据从低转换到高

强制转换 (类型)变量名

注意点:
1. 不能对布尔值进行转换
2. 不能 吧对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候要强制转换
4. 转换时可能存在内存溢出,或者精度问题
  例 int i = 128;
     byte b = (int) i;//内存溢出变成-127
     System.out.println((int)23.7)//精度丢失

扩展:操作比较打的数的时候注意溢出问题

     **JDK7新特性,数字之间可以用下划线分割**
```java
	int money = 10_0000_0000;
	int year = 20;
	int total = year * money; //-1474836480,计算出来溢出了
	long total2 = money * years; //仍旧出错,程序会先把乘积计算成int溢出后的值赋值给total2

	longt total3 = money * ((long)years);//先把一个数转换为long,再计算乘积;
posted @ 2021-01-14 21:11  晒网达人  阅读(97)  评论(0)    收藏  举报