文章目录
部分示例代码参考 菜鸟教程
Java运算符
算数运算符
- 自增自减
前缀++a为先自增,后表达式运算。
后缀a++为先表达式运算,再自增。
关系运算符
位运算符
按二进制的位进行运算
- & 位与(对应位都是1,则结果为1)
- | 位或
- ^ 非 (对应位值相同则为0,否则为1)
- ~ 按位取反
- << 按位左移
-
按位右移
-
按位右移补零
逻辑运算符
- && 逻辑与
- || 逻辑或
- ! 逻辑非
逻辑与可能导致短路
public class LuoJi{
public static void main(String[] args){
int a = 5;//定义一个变量;
boolean b = (a<4)&&(a++<10);
System.out.println("使用短路逻辑运算符的结果为"+b);
System.out.println("a的结果为"+a);
}
}
/*
使用短路逻辑运算符的结果为false
a的结果为5,没有++,因为在a<4为否后就短路了。
*/
赋值运算符
- +=
- *=
- %=
- <<=
- &=
- ……
条件运算符( ?: )
java
b = (a == 1) ? 20 : 30;
python
b = 20 if a==1 else 30
instanceof 运算符
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
Java循环结构
- while
- do … while (比起while来说,在第一次执行时不判断,即至少会执行一次)
- for
for(int x = 10; x < 20; x += 1){
}
Java增强for循环
主要用于数组
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
//James,Larry,Tom,Lacy,
关键字
- break 跳出循环
- continue 跳转到下一次循环
条件语句
if … else if … else
swich case 语句
- 变量类型支持 byte / short / int /char / String
- default:一般放在最后一个,case都不匹配时执行
- 若case1匹配成功,且其中没有case语句,后续case都会输出。若后续的case有break则会跳出判断。
public class SwitchCase {
public static void main(String[] args){
int i=1;
switch (i){
case 0:
System.out.println("0");
case 2:
System.out.println("2");
case 1:
System.out.println("1");
case 3:
System.out.println("3");
default:
System.out.println("default");
}
}
}
1
3
default
Number & Math 类
八大内置基本数据都有对应的包装类。
其中(Integer / Long / Byte / Double / Float / Short)都是抽象类Number的子类。
Number类属于java.lang包。
Character 类
// 原始字符 'a' 装箱到 Character 对象 ch 中
Character ch = 'a';
// 原始字符 'x' 用 test 方法装箱
// 返回拆箱的值到 'c'
char c = test('x');
String 类
创建字符串
String str = "Hello Java";
//or
String str2 = new String ("Hello Java");
String类的值是无法改变的,如果需要做很多修改,应使用StringBuffer & StringBuilder类。
字符串长度
.length()
连接字符串
- string1.concat(string2);
- ‘+’ 操作符
创建格式化字符串
- printf()
- format()可以返回一个String对象,可复用。
StringBuffer 和 StringBuilder 类
两者比较:StringBuilder有速度优势,但不是线程安全的(不能同步访问)
.append(“”)
.insert(起始下标,“”)
.delete(起始下标,终止下标)
Java数组
声明数组变量
dataTyte[] arrayRefVar //首选,与C系相同
or
dataType arrayRefVar[]
double[] myList
创建
arrayRefVar = new dataType[arraySize];
可以和声明写到一起
double[] myList = new double[size];
遍历
- for循环
for (int i = 0; i < myList.length ; i++){
}
- for-each循环
遍历全部数组
for (double element: myList){
}
函数中的数组
public class ArrayTest {
// 一个参数和返回值都为数组的方法
public static int[] reverse(int[] list){
int[] result = new int[list.length];
for (int i=0,j=list.length-1;i<list.length;i++,j--){
result[j]=list[i];
}
return result;
}
public static void main(String[] args){
int[] myList = {1,2,3,4,5};
int[] revList = reverse(myList);
//这样输出是不对滴
//System.out.println(revList);
//这样依次输出数组元素
for (int element:revList){
System.out.println(element);
}
}
}
多维数组
String[][] str = new String[3][4];//先行数后列数
Java日期时间
Date类
import java.util.Date;
Date date = new Date();
System.out.println(date.toString());
格式化日期
SimpleDateFormat
import java.util.*;
import java.text.* ;
public class DateTest {
public static void main(String[] args){
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyy-MM dd_hh:mm::ss");
System.out.println("当前时间为:"+ ft.format(dNow));
}
}
当前时间为:2024-06 09_10:40::59
printf
%t
休眠(sleep)
import java.util.*;
public class SleepDemo {
public static void main(String[] args) {
try {
System.out.println(new Date( ) + "\n");
Thread.sleep(1000*3); // 休眠3秒
System.out.println(new Date( ) + "\n");
} catch (Exception e) {
System.out.println("Got an exception!");
}
}
}
测量时间
正则表达式
方法
方法的重载
一个类的两个方法有相同的名字,但是有不同的参数列表。
可变参数
声明方法时,参数类型后加省略号(…)
finalize() 方法
在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
Java流(Stream)、文件、IO
一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
控制台输入
System.in 可包装在BufferedReader对象中
控制台多字符输入
read()
从控制台读取字符串
readLine()
控制台输出
print()
println()
write()
读写文件
FileInputStream
FileOutputStream
文件和I/O相关的类
File
FileReader
FileWriter
Java中的目录
创建目录:
mkdir()
mkdirs()
读取目录
一个目录就是一个File对象
isDirectory()
list()
删除目录
java.o.File.delete()
Scanner类
获取输入
Scanner s = new Scanner(System.in);
next()
nextLine()
hasNext
hasNextLine
Java 异常处理
检查型异常
try-catch
throws
运行时异常
Exception 类的层次
finally
try-with-resources
try (resource declaration) {
// 使用的资源
} catch (ExceptionType e1) {
// 异常块
}
声明自定义异常
通用异常
- JVM异常
- 程序级异常