Java学习笔记day1___JavaBase
JavaBase
基本数据类型
- 整形 byte short int long
- 浮点型 float double
- 字符型 char
- 布尔型 boolean 默认值 false
进制转换
| 进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| int i = 10 | int i = 0b10 | int i = 010 | int i = 0x10 |
| 用十进制表示 | 2 | 6 | 16 |
短路运算
![短路运算]

当执行到c< 4时为false ,后面的就不再执行
字符串连接符

扩展
- boolean
boolean flag = true;
if(flag==true){} //新手写法
if(flag){} //老手写法,和上一个写法一样
//注意:
if(flag = false){} //这里括号里的内容表示给flag赋值为false
-
类型转换
由低到高:byte➡short➡int➡long➡float➡double
由低到高的类型转换会自动转换
由高到低的类型转换要使用强制转换
int i = 128; //输出后显式128 byte b = i; //因为内存溢出,byte的范围是-128~127 byte b = (byte)i; //强制转换后 输出后显示-128 //自动转换 int i = 128; double d = i; //从低到高,自动转换高容量转为低容量需要强转,而且可能会出现丢失精度的问题
- char
char c ='a'; //ASCII表中a=97 int i = c + 1; //这里会将char类型的c自动转换为int类型再进行运算,结果是98 System.out.println((char)i); //这里的输出结果是d,因为把i强制转换为了char,在对应ASCII表,输出的结果就是d- JDK7的新特性(数字之间可以用 _ 隔开)方便阅读
int money = 10_0000_0000; //这里就和1000000000是一样的效果,只是加上分隔符号更方便阅读。 int years = 20; int total = money*years; //这里得出的结果是-1474836489,溢出了无法用int来做接收可以换成long类型来接收。 //但是这里不能直接写 long total = years*money, 因为两个int类型的乘积默认是int类型的,所以要再计算前将任意一个数据类型强转为long类型,如下 long total = money*(long)years; //这里得出的结果就是正确的200_0000_0000
变量
顾名思义就是可以变化的量。Java是一种强类型语言,所以每一个变量都必须声明其类型
定义格式:数据类型 变量名 = 值 ;//可以用逗号隔开声明多个变量,但是不建议这么做。
- 变量的作用域
- 局部变量:存在于方法内,只能作用于方法的大括号内部,使用前必须声明
- 类变量:有static修饰的变量,从属于类
- 实例变量:没有static修饰,存在于类中方法外,从属于对象,创建对象,用对象来调用
-
常量(Constant)
有final修饰的变量 :final 变量类型 变量名(一般大写,用下划线隔开) = 值;
final double PI = 3.14;
-
命名规范
(驼峰命名)
- 变量:首字母小写,后续单词首字母大写
- 常量:全部大写,单词之间用下划线来隔开
- 类名:首字母大写,驼峰命名规则
- 方法名:首字母小写,后续单词首字母大写
三元运算符
![三元运算符]

逻辑运算符
![逻辑运算符]

左移右移
<<左移 >>右移
2*8=16怎么计算最快?
0000 0001 //1
0000 0010 //2 左移一位表示 *2
0000 0100 //4 左移一位
0000 1000 //8 左移一位
0001 0000 //16 左移一位
可以将2*8看成2 * 2 * 2 * 2 * 2,意思就是将这个1向左移动四位
字符串连接符 +
int a = 10;
int b = 20;
sout(" " + a + b); //输出结果是1020
sout(a + b + " "); //输出结果是30
注意如果在一个运算中有字符串的连接,那么运算的部分最好加上个括号。
浙公网安备 33010602011771号