java学习笔记2 - java基础

自用的学习笔记,若有错误欢迎指出。
java关键字
java所有的组成部分都需要名字。类名、变量名以及方法名都被称之为标识符。
以下的这些都是java的关键字,在命名的时候不能使用。
java命名注意点
- 所有的标识符都应该以字母(A-Z, a - z)、美元符$、或者下划线
_
开始。 - 首字符之后可以是字母(A-Z, a - z)、美元符$、或者下划线
_
的任意字符组合。 - 不能使用关键字作为变量名或者方法名。
- 标识符是大小写敏感的。
变量命名规范[important]
所有的变量、方法、类名要做到:简洁明了
类成员变量:首字母小写和驼峰原则
局部变量:首字母小写和驼峰原则
常量:大写字母和下划线:MAX_VALUE
类名:首字母大写和驼峰原则
方法名:首字母小写和驼峰原则
合法标识符举例:
- age
- $salary
- _value
- _1boy
非法标识符举例:
- 123abc
- 207somker
- -salary
- #boy
数据类型
java是一门强类型语言
- 要求变量的使用严格规定,所有的变量都必须先定义后使用。
java的数据类型分为两大类
- 基本类型(primitive type)
- 数值类型
- 整数类型
- byte: 占1个字节范围:-128~127
- short:占2个字节范围:-32768~32767
- int:占4个字节范围:-2147483648~2147483647
- long:占8个字节范围:略
- 浮点类型
- float:占4个字节
- double:占8个字节
- 字符类型(char占8个字节)
- 整数类型
- Boolean类型(占1位其值只有true & false)
- 数值类型
- 引用类型(reference type)
- 类
- 接口
- 数组
- 基本类型(primitive type)
整数类型于浮点类型
- 进制:
- 二进制:0b
- 十进制
- 八进制:0
- 十六进制:0x
1 | /* |
字符类型扩展
1 | /* |
类型转换
由于Java是强类型语言,所以当需要进行某些运算的时候,需要用到类型转换。
运算中,不同类型的数据优先转化为同一类型,然后进行运算。
1 | //低 -------------------------------------------> 高 |
注意点:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换为低容量的时候,需要强制转换
- 在转换的时候,可能出现内存溢出或者精度问题的出现
1 | //强制转换 (类型)变量名 高->低 |
什么是字节
- 位(bit):是计算机内部数据最小单位。例:1100 1100是一个八位二进制数。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
- 1B(byte,字节) = 8bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号。
变量
变量就是可以变化的量。
java一种强类型语言,每个变量都必须先声明其类型。
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
1 | //数据类型 变量名 = 值; 可以使用逗号来隔开声明多个同类型变量 |
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号
;
结束。
变量作用域
- 类变量
- 实例变量
- 局部变量
1 | public class Variable { |
实例变量:从属于对象,如果不初始化,其初始值为0
布尔值的默认值为:false
除了基本类型,其余的默认值为null
1 | public class Demo1{ |
常量
常量(Constant): 初始化(initialize)后不能再改变值,是不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定之后,在程序运行的过程中不允许被改变。
1 | //final 常量名 = 值; |
常量名一般使用大写字符。
java运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
1 | //二元运算符 |
自增自减:++
、--
a++
: 执行完这行代码之后,先赋值给b
,然后再自增
++a
: 执行这行代码之前,先自增,然后再给c
赋值
1 | //自增自减:`++` 、`--` |
幂运算
幂运算可以使用java的工具类Math
来运行
1 | double pow = Math.pow(2, 3); // 2的3次方 |
逻辑运算符
&&
: 逻辑与(and)运算||
: 逻辑或(or)运算!
: 逻辑非(取反)运算
1 | boolean a = true; |
位运算
从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号位共同参与运算的运算。
符号 | 描述 | 运算规则 |
---|---|---|
& |
与 | 两个位都为1时,结果才为1 |
| | 或 | 两个位都为0是,结果才为0 |
^ |
异或 | 两个位相同为0,相异为1 |
~ |
取反 | 0变1,1变0 |
<< |
左移 | 各二进位全部左移若干位,高位丢弃,低位补0 |
>> |
右移 | 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移) |
1 | A = 0011 1100 |
思考:在计算机运算2 * 8
中,用什么方式效率最高?
- 采用位运算是最快的。采用
<<
左移来实现。
字符串连接符
在+
的两边只要出现了String
,就会把其他的字符都变成String
类型。
1 | int a = 20; |
三元运算符
x ? y : z
这就是一个三元运算符。运行方式为:如果x == ture
,那么结果就为y
,否则结果就为z
。
1 | int score = 80; |
后记
在对照着视频把老师的知识点用博客这样的方式记录下来,这样不仅加深了这些知识的理解,同时也能更好的帮助我随时查阅。积少成多、聚沙成塔,只要坚持下来就没有什么搞不定的。
之后,我也会继续学习java,继续更新博客。分享知识、结交朋友,感谢你的观看!
参考链接
B站:狂神说java
菜鸟教程:java运算符
菜鸟教程:位运算