Java基础重新梳理一遍,本内容是按照b站视频以及《Java核心技术卷一》来学习的。主要是梳理,建立自己的Java知识体系,会针对自己的薄弱部分加以练习和学习。
目录
1.Java语法
1.1. 字符型常量和字符串常量的区别?
-
形式上: 字符常量是单引号引起的一个字符; 字符串常量是双引号引起的 0 个或若干个字符
-
含义上: 字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)
-
占内存大小 字符常量只占 2 个字节; 字符串常量占若干个字节 (注意: char 在 Java 中占两个字节),
字符封装类
Character
有一个成员常量Character.SIZE
值为 16,单位是bits
,该值除以 8(1byte=8bits
)后就可以得到 2 个字节
1.2.注释
Java 中的注释有三种:
-
单行注释
-
多行注释
-
文档注释
/**
* 文档注释
* @author zengx
* @version V1.0
*/
public class Main {
/**
* 多行注释:main是程序的入口
*/
public static void main(String[] args){
//单行注释:输出
System.out.println("Hello Java!");
}
}
在我们编写代码的时候,如果代码量比较少,我们自己或者团队其他成员还可以很轻易地看懂代码,但是当项目结构一旦复杂起来,我们就需要用到注释了。注释并不会执行(编译器在编译代码之前会把代码中的所有注释抹掉,字节码中不保留注释),是我们程序员写给自己看的,注释是你的代码说明书,能够帮助看代码的人快速地理清代码之间的逻辑关系。因此,在写程序的时候随手加上注释是一个非常好的习惯。
《Clean Code》这本书明确指出:
代码的注释不是越详细越好。实际上好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。
若编程语言足够有表达力,就不需要注释,尽量通过代码来阐述。
1.3.关键字和保留字
1.3.1.Java 中有哪些常见的关键字?
访问控制 | private | protected | public | ||||
---|---|---|---|---|---|---|---|
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native |
new | static | strictfp | synchronized | transient | volatile | ||
程序控制 | break | continue | return | do | while | if | else |
for | instanceof | switch | case | default | |||
错误处理 | try | catch | throw | throws | finally | ||
包相关 | import | package | |||||
基本类型 | boolean | byte | char | double | float | int | long |
short | null | true | false | ||||
变量引用 | super | this | void | ||||
保留字 | goto | const |
1.4.标识符
1.4.1.标识符
凡是可以直接起名字的地方都叫标识符
1.4.2.标识符命名规则
包名:多单词所有字母小写:xxxyyyzzz
类名,接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 驼峰命名法
变量名,方法名:多单词组成时,第一个单词字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有大写,多单词每个单词用下划线连接:XXX_YYY_ZZZ
详细看:https://blog.csdn.net/zhu_xun/article/details/19912411
1.5.变量
1.5.1.变量的概念与定义
程序中最基本的的存储单元,Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
变量定义的格式包括三个要素: 数据类型 、 变量名 、 数据值 。
格式: 数据类型 变量名 = 变量值;
1.5.2.变量的分类
- 变量的分类
- 整数类型:byte short int long
- 浮点类型: float double
1.5.3.变量的使用以及注意事项
- 定义所有基本数据类型的变量,代码如下:
long类型:建议数据后加L表示。 float类型:建议数据后加F表示。public class Main { public static void main(String[] args) { //定义字节型变量 byte b = 100; System.out.println(b); //定义短整型变量 short s = 1000; System.out.println(s); //定义整型变量 int i = 123456; System.out.println(i); //定义长整型变量 long l = 12345678900L; System.out.println(l); //定义单精度浮点型变量 float f = 5.5F; System.out.println(f); //定义双精度浮点型变量 double d = 8.5; System.out.println(d); //定义布尔型变量 boolean bool = false; System.out.println(bool); //定义字符型变量 char c = 'A'; System.out.println(c); } }
-
注意事项:变量名称在同一个大括号范围内,变量的名字不可以相同;变量赋值定义的变量,不赋值不能使用;变量都定义在其作用域内。在作用域内,它是有效的
1.6.数据类型转换
1.6.1.自动转换
将 取值范围小的类型 自动提升为 取值范围大的类型 。
1.6.2.强制转换
将 取值范围大的类型 强制转换成 取值范围小的类型 。比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
数据类型 变量名 = (数据类型)被转数据值
1.6.3.注意事项
浮点转成整数,直接取消小数点,可能造成数据损失精度。 int 强制转成 short 砍掉2个字节,可能造成数据丢失。
1.6.4.ASCII编码表
计算机的内部都是二进制的0,1数据,编码表就是将人类的文字和一个十进制数进行对应起来组成一张表格。
1.7.运算符
1.7.1.算数运算符
++ 运算,变量自己增长1。反之, -- 运算,变量自己减少1,用法与 ++ 一致。
独立运算: 变量在独立运算时, 前++ 和 后++ 没有区别 。 变量 前++ :例如 ++i 。 变量 后++ :例如 i++ 。 代码如下:
public static void main(String[] args) {
int a = 1;
int b = ++a;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是2
}
public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是1
}
1.7.2.赋值运算符
赋值运算符,就是将符号右边的值,赋给左边的变量。
1.7.3.比较运算符
比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值 true 或者 false 。
1.7.4.逻辑运算符
逻辑运算符,是用来连接两个布尔类型结果的运算符,运算结果都是布尔值 true 或者 false
1.7.5.三元运算符
三元运算符格式:
数据类型 变量名 = 布尔类型表达式?结果1:结果2
三元运算符计算方式:
布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。
布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。
后记
---------书山有路勤为径,学海无崖苦作舟