1、注释
多行注释
单行注释
/**
* @description: HelloWorld类
* @author: 大橘为重yo
* @date: 2020-04-26 13:18
*/
public class HelloWorld {
/**
* 主函数
* @param args 参数
*/
public static void main(String[] args){
//输出Hello world!
System.out.println("Hello world!");
}
}
2、数据类型
2.1 整型
类型 | 存储需求 | 应用场景 |
---|---|---|
int | 4字节 | 通常情况下 int型比较常用 |
short | 2字节 | 用于特殊场景 |
long | 8字节 | 数据较大,如表示星球上的人数时,用long类型 |
byte | 1字节 | 用于特殊场景 如:占用存储空间量的大数组 |
2.2 浮点类型
- double表示这种类型的数值精度是float类型的两倍(双精度数值)。绝大部分应用程序都使用double类型;float在多数情况下不能满足需求,只有少数情况会使用到float类型(如:3.14F),例如,需要快速处理单精度数据
- float类型数值后有一个后缀F,如果没有后缀F的浮点数值默认为double类型的
类型 | 存储需求 |
---|---|
float | 4字节 |
double | 8字节 |
三个特殊的浮点数值
正无穷大 Double.POSITIVE_INFINITY 如:一个正整数除以0的结果为正无穷大
负无穷大 Double.NEGATIVE_INFINITY
NaN(不是一个数字)Double.NaN 如:计算0/0或者负数的平方根结果为NaN
2.3 字符类型 (char)
char类型用于表示单个字符,通常用来表示字符常量
下面是一些特殊字符的转义序列符:
转义序列 | 名称 | Unicode值 |
---|---|---|
\b | 退格 | \u008 |
\t | 制表 | \u009 |
\n | 换行 | \u00a |
\r | 回车 | \u00d |
\" | 双引号 | \u0022 |
\’ | 单引号 | \u0027 |
\\ | 反斜杠 | \u005c |
2.4 boolean类型
boolean类型有两个值:false和true,用来判断逻辑条件。整型值和布尔值之间不能进行相互转换
3、变量
3.1 变量声明
类型 变量名 ; eg: boolean flag;
3.2 变量初始化
声明一个变量后,必须用赋值语句对变量进行显示初始化,千万不要使用未被初始化的变量
eg: 变量初始化: int week = 7;
3.3 常量
在Java中,利用关键字final指示常量,例如:
final double PAI = 3.14;
final int week = 7;
关键字final表示这个变量只能被赋值一次。一旦被赋值之后,就不能再改变了
4、运算符
4.1 加减乘除 + - * /
4.2 自增、自减运算符
//++ 在前面就是先+1,再运算++ 在后面就是先运算,再+1; --同理
int a = 7;
int b = 7;
int x = 2 * ++ a; //此时,x = 16, a = 8
int y = 2 * b++; //此时,y = 14, b = 8
4.3 关系运算符与boolean运算符
== 是否相等
!= 是否不等
大于 >、小于 <、大于等于 >=、小于等于 <=
&& 与
|| 或
三元运算符
4.4 位运算符
& 与 (&与&&的区别:a && b 如果a为false,则不用看b,结果直接为false;a & b 不管a结果是什么,都要看b,再得到最后结果)
| 或 (| 与 || 的区别同上,a || b 如果a为true,则不用看b,结果直接为true;a | b不过a结果是什么,都要看b,再得到最后结果)
^ 异或
~ 非
<< 左移 ; >> 右移 (>>>用0填充高位, >>符号位填充高位,没有<<<运算符)
4.5 数学函数与常量
在Math类中,包含各种各样的数学函数
eg:想要计算一个数值的平方根,可以使用sqrt方法:
double x = 4;
double y = Math.sqrt(x);
System.out.println(y); //输出结果2.0
4.6 数值类型之间的转换
4.7 枚举类型
有时候变量的取值只在一个有限的集合内,例如销售的服装大小只有 小、中、大、超大这四种尺码,针对这种情况,我们就可以定义一个枚举类型来存储
/**
* @description: 服装尺码枚举类
* @author: 大橘
* @date: 2020-04-26 16:27
*/
public enum Tshit {
/**
* S码
*/
SMALL(160, 'S'),
/**
* M码
*/
MEDIUM(165, 'M'),
/**
* L码
*/
LARGE(170, 'L'),
/**
* X码
*/
EXTRE_LARGE(175, 'X');
private int size;
private char flag;
Tshit(int size, char flag){
this.size = size;
this.flag = flag;
}
}
5、字符串
5.1 子串
String的substring方法提取子字符串,例如:
String greeting = “Hello”;
String s = greeting.substring(0, 3); //从0开始,直到3为止,但不包含3
System.out.println(s); //输出:Hel
5.2 拼接
java语言允许使用+号连接,例如:
String s1 = “hello”;
String s2 = “world”;
String str1 = s1 + s2; //helloworld
String str2 = s1 + 123; //hello123
5.3 不可变字符串
String 类是不可变字符串,可以通过拆解再拼接的方式改变字符串,例如:
String str = “Hello”; //改为“Help”;
String sub = str.substring(0,3); //“Hel”
String str = sub + “p”; //“Help”
5.4 检测字符串是否相等
1、使用.equals()方法(区分大小写),例如:
“Hello”.equals(“helle”); //false
2、使用.equalsIgnoreCase()方法(不区分大小写),例如:
“Hello”.equalsIgnoreCase(“hello”); //true
5.5 空串与Null串
空串""是长度为0的字符串,可以调用以下代码检查一个字符串是否为空:
if (str.length == 0) //str为空
if (str.equals("")) //str为空检查一个字符串是否为null:
if (str == null) //str为null
检查一个字符串既不为空也不为Null:
if (str != null && str.length != 0) //str既不为空也不为Null
5.6 字符串API
public class StringAPIDemo {
public static void main(String[] args){
String str1 = "hello";
String str2 = "world";
//通过角标获取字符
char c = str1.charAt(1); //e
//判断两个字符串是否相等
boolean flag = str1.equals(str2); //false
//判断str1是否包含"he"
boolean contains = str1.contains("he"); //true
//返回指定位置的代码点
int i = str1.codePointAt(1); //101
//比较两个字符串
int compare = str1.compareTo(str2); // -15
//判断str1是否以字符串"o"结束
boolean o = str1.endsWith("o"); // true
//str1与'e'匹配的第一个字符索引
int e = str1.indexOf('e'); //1
//str1与"ell"匹配的第一个字符索引
int ell = str1.indexOf("ell"); //1
//str1从索引0到2(不包括2)返回一个新字符串
String substring = str1.substring(0, 2); //he
//str1全部改为大写
String s = str1.toUpperCase(); //HELLO
//...
}
}
5.7 StringBuilder API
public class StringBuilderDemo {
public static void main(String[] args){
//构建一个空的字符串构建器
StringBuilder builder = new StringBuilder();
//追加一个字符串并返回
StringBuilder builder1 = builder.append("hello"); // hello
//追加一个字符并返回
StringBuilder builder2 = builder1.append('!'); // hello!
//将索引为0的字符改为'H'
builder2.setCharAt(0, 'H');
System.out.println(builder2); //Hello!
//在索引为1 的位置追加字符串"33333"
StringBuilder builder3 = builder2.insert(1, "33333"); //H33333ello!
//删除索引1到6(不包含6)的字符
StringBuilder builder4 = builder3.delete(1, 6); //Hello!
//返回构建器的长度
int length = builder4.length(); //6
//转化为字符串
String s = builder4.toString(); //Hello!
}
}