Java程序基本结构
-
一个程序的基本单位是class,class是关键字
-
类名要求:
-
-
习惯以大写字母开头
-
-
public除了修饰类还可以修饰方法
-
Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须为String数组。
-
方法名命名规则:
-
首字母小写
-
-
每一行语句必须以分号结束。
-
注释:
-
单行注释://
-
多行注释:/**/
-
多行注释:以/**开头,以**/结束,每行以星号开头
/**
*
*
*/
-
变量
基本类型变量
-
变量先定义后使用。
-
变量默认值是0
-
变量不可重复定义,可重复赋值,可变量之间赋值。
基本数据类型
-
整数类型:
byte(一个字节,-128~127),
short(两个字节,-32768~32767),
int(四个字节,-2147483648~2147483647),
long(八个字节,-9223372036854775808~922337203685477580)
-
浮点数类型:
float(四个字节),需要加上f后缀
double(八个字节)
-
字符类型:char(两个字节)
-
布尔类型:boolean(存储需要1bit,通常表示成四字节整数) 只有true和false两个值。
引用类型
-
string字符串:
常量
定义变量时加上final修饰符,变量就变成了常量。
作用:用有意义的变量名避免魔术数字。
常量名通常全部大写。
var关键字
作用:省略变量类型
var sb = new StringBuilder();
编译器会根据赋值语句自动推断出变量
sb
的类型是StringBuilder
。对编译器来说,语句:var sb = new StringBuilder();
实际上会自动变成:
StringBuilder sb = new StringBuilder();
-
变量的作用范围
{ }作用域
整数运算
-
移位运算
-
无符号右移运算:>>>
-
byte和short类型进行以为时,会首先转换为int再进行位移。
-
左移*2,右移%2
-
-
运算优先级
-
()
-
!
~
++
--
-
*
/
%
-
+
-
-
<<
>>
>>>
-
&
-
|
-
+=
-=
*=
/=
-
-
强制类型转换
int i=12345;
short s=(short)i;不能超出范围
-
类型提升
short类型与int类型进行运算时得到的结果是int类型。
-
位运算
-
按位与 &:有0为0,全1为1
-
按位或 |:有1为1,全0为0
-
按位非 ~:1~0,0~1
浮点数运算
-
Java浮点数遵循IEEE-754标准。
-
类型提升:如果参与运算的两个数其中一个是整型,那么整型可以自动提升到浮点型。
-
溢出:整数运算在除数为
0
时会报错,而浮点数运算在除数为0
时,不会报错,但会返回几个特殊值:-
NaN
表示Not a Number -
Infinity
表示无穷大 -
-Infinity
表示负无穷大
-
-
强制转型
int i=(int)23.55;//i=23
int i1=(int)-23.55;//i=-23四舍五入:对浮点数加0.5再进行强制类型转换。
布尔运算
-
布尔运算是一种关系运算,包括以下几类:
-
比较运算符:
>
,>=
,<
,<=
,==
,!=
-
与运算
&&
-
或运算
||
-
非运算
!
-
-
关系运算符的优先级从高到低依次是:
-
!
-
>
,>=
,<
,<=
-
==
,!=
-
&&
:有一个为false则结果为false -
||
:有一个true则结果为true
-
-
短路运算:提前知道运算结果而不再运算。
-
三元运算符:b?x:y
int a=3;
int b=4;
int x=a>b?0:1;
字符
-
类型:char
-
char s='\u0041';//'A'十六进制0041=十进制65
字符串
-
类型:String 引用类型
-
表示:"......"
String s="";//零个字符
String s1="abc";//三个字符
String s2="中文 hhh"; -
字符串需要表示"时,用\转义符
String s="abac\"xxxx";
-
常见的转义字符包括:
-
\"
表示字符"
-
\'
表示字符'
-
\\
表示字符\
-
\n
表示换行符 -
\r
表示回车符 -
\t
表示Tab -
\u####
表示一个Unicode编码的字符
-
-
字符串连接
使用+连接
String s1="hello";
String s2="world";
string ss=s1+s2+"!";
System.out.println(ss); -
多行字符串
用"""..."""表示
String s="""
sdffrfe
sdfwrwf
sdfreg
""";
System.out.println(s); -
不可变特性
字符串内容不可变。
-
空值null:引用类型的变量可以指向一个空值
null
,它表示不存在,即该变量不指向任何对象。数组类型
-
定义数组类型的变量:使用数组类型int [],数组变量初始化需要使用new int[5],表示可容纳五个int类型元素的数组。
int[] ns=new int[5];
-
特点:
-
数组所有元素初始化为默认值,整型都是
0
,浮点型是0.0
,布尔型是false
; -
数组一旦创建后,大小就不可改变。
-
-
修改数组中的元素:使用赋值语句
ns[1]=98;
-
获取数组大小:数组变量.length
int[] ns=new int[5];
System.out.println(ns.lenght); -
定义数组时初始化元素
int[] ns=new int[5] {1,2,3,4,5};
int[] ns1={1,2,3,4,5};
System.out.println(ns.lenght);
System.out.println(ns1.lenght);
字符串数组
-
定义字符串数组:
String[] ns={"aba","vdf","fdwf"};
-
字符串内容不会更改,仅指向更改
-
-