IDEA注释:
单行注释://(英文输入法),只能注释一行内容
多行注释:/*(英文输入法),可以注释一段内容
文档注释:/**(英文输入法),javaDoc
注释快捷键:ctrl+/
标识符与关键字
Java所有的组成部分都需要名字。类名变量名以及方法名都被称为标识符。
关于标识符我们需要注意的是以下几点:
- 所有标识符都应该以字母、美元符、或者下划线开始,首字符之后可以是任何字符组合;
- 不能使用关键字作为变量名或方法
- 标识符是大小写敏感的
- 可以使用中文命名,但一般不建议这样去使用,也不建议使用拼音(很low)
下图这些“关键字”虽然现在看起来很多,但是学到后面基本上都能熟悉,这里不用特意去记。
**铺垫:
位(bit):是计算机内部数据储存的最小单位;
字节(byte):是计算机中数据处理的基本单位,习惯用大写B来表示;
1B=8bit
字符:是指计算机中使用的字母、数字、字和符号
基本数据类型(primitive type)
数值类型:
整数(类型)
1.byte 占1个字节,—128-127(即8位)
2.short 占2个字节,—32768-32767(即16位)
3.int 占4个字节,—2147483648-2147483647(即32位)
4.long 占8个字节,—9223372036854775808-9223372036854775807(即64位),使用时数字后加L
注:一般用int
浮点(类型)
即包含小数点,一般用double
1.float 占4个字节(32位),使用时数字后加F
2.double 占8个字节(64位)
字符(类型)
1.char 占2个字节
例子:
char name ='邑';
一个字符就是一个字,用单引号锁定字符
**字符串:string,它不是关键字!**是引用类型里的类,串用双引号锁定字符
例子:
String namea ="什么是邑?"
boolean(布尔值)类型:
占1位其值只有true和false两个,表示:是非
例:
boolean flag = true
boolean flag = false
一些底层逻辑与面试题:
整数拓展
二进制0b 十进制 八进制0 十六进制0x
int a = 0b10;
int b = 10;
int c = 010;
int d = 0x10;
浮点数拓展
float :有限,离散,舍入误差,大约,接近但不等于
double
//最好完全避免使用浮点数进行比较!!!
//最好完全避免使用浮点数进行比较!!!
//最好完全避免使用浮点数进行比较!!!
float a1 =0.1f; //0.1
double a2 =1.0/10; //0.1
System.out.println(a1==a2); //结果不相等,false
System.out.println(a1);
System.out.println(a2);
//A==B,==是指两个值是否相等
float a3 =23123121213f;
float a4 = a3 + 1;
System.out.println(a3==a4); //结果相等,true
System.out.println(a3);
System.out.println(a4);
字符拓展
char a1 ='厚';
char a2 ='礼';
char a3 ='谢';
System.out.println((int)a1);
System.out.println((int)a2);
System.out.println((int)a3);//a1-a3都是强制换行
//所有的字符本质还是数字.
//编码 Unicode 表:(谢=35874)2字节 0-65536 Excel 2的16次方=65536
//U0000 UFFFF
char a4 ='\u0061';
System.out.println(a4); //a
转义字符
\t 制表符
\n 换行
......待拓展
例: System.out.println("hello\tworld");
//hello world
有明显的空格隔开字符输出
布尔值拓展
boolean flag =true;
if (flag==true){} //新手
if (flag){} //老手
//ture
//Less is more!代码要精简易读
类型转换
强制转换
由高到低,即(类型)变量名
int a1 = 12;
byte a2 =(byte)a1;
System.out.println(a1);
System.out.println(a2);
//12,12
自动转换
由低到高转换
int a3 = 132;
double a4 = a3;
System.out.println(a3);
System.out.println(a4);
变量溢出
int b1 = 128;
byte b2 =(byte)b1;
System.out.println(b1);
System.out.println(b2); //-128
//因为byte的范围是—128到127,溢出了
//数字之间可以用下划线分割,案例:
int money = 10_0000_0000;
int years = 20;
int total =money*years; //-1474836480,计算的时候溢出了
long total2 =money*years; //这里默认是int,转换之前就出问题了
long total3 =money*((long)years); //先把一个数转为long就解决了
System.out.println(total3); //20000000000
精度问题
//例:
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.转化时可能存在内存溢出,或者精度问题