Java 基础知识笔记

Java 基础知识复习笔记

Java 基本程序结构

这篇笔记会从以下几点入手,概括基本程序结构所涉及的知识点:基本变量类型,运算符,字符串,流程控制,数组。这篇笔记适用于有一定 Java基础的同学,帮助同学快速回忆知识点。当然,想要更好的掌握知识点还要多实践,毕竟实践出真知,加油!

1. 基本变量类型

图片中显示了Java中包含的 8 种基本变量类型
其他补充知识点:
1.1 图中显示了Java中包含的 8 种基本变量类型。

1.2 在Java中,变量名对大小写敏感,例如 hireday 和 hireDay 是两个不同的变量名。

1.3 在Java中,声明一个变量之后,必须给该变量赋值以初始化变量⚠️

1.4 在Java中,利用 final 关键字指示常量 例如 :

final double TEST = 3.18;

final 表示这个变量只能被赋值一次,并且赋值之后不能再更改,习惯上常量名使用全大写。

1.5 在Java中,有时希望一个常量可以在一个类中的多个方法中使用,通常这种常量被称为类常量,用static final 修饰变量,此外类常量定义在 mian 方法的外部。例如:

public static final TEST = 3.18;

注意 ⚠️ 如果在 static 前有 public 关键字, 那么其他类的方法也能使用这个常量。

1.6 特殊数值计算:
用于计算特殊数值,例如金融计算涉及到的金钱
这张图片显示了用于计算特殊数值会用到的类和方法,当然更多使用方式还要到官方文档查询。

1.7 数值类型之间的转换
数值类型之间的转换
图中展示了8种数据类型之间的相互转换关系,其中实线表示转换过程中不会有数据精度丢失,虚线表示可能会有数据精度丢失。

2. 运算符

2.1 在Java中+, -, *, / 表示加减乘除;除法运算稍有特殊,当操作数都是整数时,表示整数除法;否则表示浮点除法。整数的求余操作(也称取模)用%表示。例如, 15 / 2 = 7, 15%2 = 1, 15.0 / 2 = 7.5 。

2.2 常用的数学函数与常量:

常用函数与常量
平方根:Math.sqrt(x);
幂运算:double y = Math.pow(x, a); 将 y 的值设置为 x 的 a 次幂
三角函数:Mathe.sin; Math.cos; Math.tan; Math.atan; Math.atan2
指数函数,以及反函数:Math.exp; Math.log; Math.log10
Pi 和 e 常量的近似值: Math.PI; Math.E

2.3 如果要使用运算符应首先把操作数转换成同一类型:

基本规则
如果两个操作数有一个是 double 类型,另一个操作(int)数就会转换为double类型
如果两个操作数有一个是 float 类型,另一个操作数(int)也会转换为float类型
如果两个操作数有一个是 ling 类型,另一个操作数(int)也会转换为long类型
否则都转换为 int 类型

2.4 强制类型转换
例如,在某些时候 int 类型可以自动转换为 double 类型,而有些时候也需要 double 类型转换为 int 类型:

double x = 9.997;
int nx = (int) x;

2.5 组合赋值和运算符

x += 4; 等价于 x = x + 4;

自增与自减:

n ++ 和 n--(后缀形式)

++n 和 --n (前缀形式)

两者的区别前者会先用原值计算,后者先用计算+1 或 -1

2.6 关系和布尔运算

关系和布尔运算
检测 相等 可以用 “==”检测 不等 可以用“!=”
其他如"<", “>”, “<=”, “>=”
在这里插入图片描述
“!”就是逻辑非运算符
在这里插入图片描述

2.7 枚举
如果变量的取值限制在一个集合里,就需要用到枚举 enum

enum Size {SMALL, MEDIUM, LARGE}

声明这种类型

Size s = Size.MEDIUM

2.8 位运算

//TODO

3. 字符串

3.1 从概念上说,Java字符串就是Unicode字符序列。Java没有内置的字符串类型,而是在标准的Java类库中一共了一个预定义类,String。因此每一个用双引号扩起来的字符串都是String类的一个实例:

String e = ""; // 一个空的String
String greeting = "Hello";

3.2 提取–>>String 类的 substring 方法可以从一个较大的字符串中提取出一个子串。例如:

String greeting = "Hello";
String s = greeting.substring(0,3);
//输出结果s 为 “Hel”也就是创建了一个有字符“Hel”组成的字符串

3.3 拼接–>>Java允许使用 + 号拼接两个字符串。

String expletive = "Expletive";
String PG13 = "deleted";
String message = expletive + PG13;

3.4 检测字符串是否相等

s.equals(t); //检测字符串 s 和 t 是否相等如果相等返回true 不相等返回 false.
"Hello".equals(greeting) //或者直接写字符串

注意⚠️:比较时一定不要用 “==”运算符检测两个字符串是否相等!这个运算符只能确定两个字符串是否放在同一个位置上,当然如果放在同一个位置上那么一定相等了。但是完全有可能内容相等,但却没有放在同一个位置上。所以 equals 更为准确。

3.5 空串与 Null 串

  • 空串“”是长度为 0 的字符串。可以调用以下代码检查一个字符串是否为空:
if (str.length() == 0)
//或
if (str.equals(""))
  • Null是一个特殊值存在String变量中,判断一个字符串是否为Null
if (str == null) 
  • 如果检查一个字符串既不是空串也不是null则:
if (str != null && str.length() != 0)

3.6 构建字符串
为了提高构建字符串的效率以及降低空间使用率可以使用 StringBuilder 类:

StringBuilder builder = new StringBuilder();
builder.append(ch);
builder.append(str); 
//在需要构建字符串时就调用 toString 方法, 将可以得到一个String 对象:
String conpletedString = builder.toString();

3.7 更多String的应用可以 查询String API这里只简单罗列基础的知识点。

4. 流程控制

与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程。

  • 条件语句
if (condition) statement
// 和
if (condition) statement1 else statement2
  • 循环语句
while (condition) statement
// 和
do {statement} while (condition) //循环体至少执行一次
  • 确定循环
    for 循环语句时支持迭代的一种通用结构

  • 多重选择
    switch 语句,在处理多个选项时 if/else 结构显得笨重,可以使用switch

switch (choice)
{
	case 1:
		…….
		break;
	case 2:
		…….
		break;
	default: 
		……..
		break;
}
  • 中断控制流程语句
    continue 和 break 的使用,在正常开发中尽量避免使用,所以不做过多叙述。

5. 数组

5.1 数组是一种数据结构,用来存储同一类型数值的集合。

int [] a; //声明数组,只有初始化之后才可以使用
int [] a = new int[200]; //声明数组并初始化 
int[] a 或 int a[] // 两种写法都可以

5.2 for each 循环取值或赋值
for (variable : collection) statement

//打印数组 a 中的每一个元素。
for(int element : a)
	System.out.println(element);

5.3 初始化以及匿名数组

int [] smallPrimes = {2, 3, 4, 5, 6}; //声明并初始化数组
new int[ ] {17, 18, 19, 20}; // 初始化匿名数组
int [] anonymous = {17, 18, 19, 20};
smallPrinmes  = anonymous ;

smallPrinmes = new int[ ] {17, 18, 19, 20}; // 上边两行代码的简写形式

注意⚠️ :数组长度为0 与 null 是不同的。

5.4 数组拷贝

  • Java 中允许将一个数组变量拷贝给另一个数组变量。这时,两个变量引用同一个数组:换句话说,如果数组 b 拷贝了 a,那么如果对数组 b 进行数值改变操作,那么数组 a 也会跟着变。
  • 可以用 Arrays.copyOf() 拷贝数组

5.5 数组排序

  • Java中提供了数组排序方法,使用 Arrays.sort(a),更多方法可以到API中查询。

5.6 多维数组

  • 多维数组将使用多个下标访问数组元素,它适用于表格或更加复杂的排列方式。
double [ ][ ] balances; //声明一个二维数组
balances = new double [x][y]; // 初始化

下一篇关于类与对象的笔记
所有知识点参考的书籍是

《Java 核心技术 卷 I》

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页