Java基础语法
一、Java程序的标识符和关键字
Java标识符和常用关键词
什么是Java标识符:类名、方法名、变量名(标识符都应遵守由 字母、下划线、美元符号、数字不能是%和一些特殊符号,不能以数字开头,也不能说Java的关键字。)
Java关键字:电脑里面事先定义、有特别意义的标识符号。关键字不能作为变量名、方法名、类名、包名和参数。
一些常用的关键字:
boolean、byte、char、double、enum、float、int、long、short、void
private、protected、public、default
abstract、extends、class、interface、return、static、super
assert、break、case、try、catch、const、continue、do、else、final、finally、
for、goto、if、implements、import
instanceof、native、new、package
switch、synchronized 、this、throw、throws
transient、volatile、while
二、Java核心基础知识修饰符
修饰符作用:用来定义类、方法或者变量的访问权限。
两大类 :访问修饰符、非访问修饰符
访问修饰符:限定方法或者属性能不能在程序的其他地方访问到
private < default < protected < public(public的都能访问到,private属于隐私权限,只能在当前类访问到)
非访问修饰符:用来修饰和辅助功能
如static、final、abstract、synchronized
主要记住:
外部类修饰符: public或者为默认
⽅法、属性修饰符:private、default、protected、public
public - 公开对外部可⻅
protected - 对包和所有⼦类可⻅
private - 仅对类内部可⻅
如:
1.
2.
三、 Java核心基础值数据类型
- 计算机基础知识
bit 位 ,即0或者1, 0101010110
byte字节,8位作为⼀个字节,字节是处理数据的基本单位
1 byte = 8bits
1KB = 1024 bytes
1MB = 1024 KB
1GB = 1024 MB
2.八种基础数据类型((每个数据都需要从计算机内存中申请空间,来存储它))
byte
8位
最⼤127,最⼩-128
节省空间,占⽤int类型的四分之⼀
默认 0
short
16位
最⼩-32768,最⼤32767
int类型的⼆分之⼀
默认是0
int
32位
最⼩ -2147483648,最⼤ 2147483647
整数默认是int类型
默认是0
long
64位
最⼩ -9223372036854774808,最⼤ 9223372036854774807
默认是 0L,
float 浮点
单精度32位
默认0.0f
double
双精度 64位
浮点数默认位double类型
默认是0.0
boolean
1位
true或者false
默认是false
char
16位的 unicode字符,即两个字节表示⼀个字符
最⼩是 \u0000 即0,做⼤ \ufff 即65535
例⼦ char demo = 'A'
类型转换 double > float > long > int > short > byte
⼩转换到⼤,可以直接转换,⽽从⼤到⼩,需要强制转,会有精度丢失
引⽤数据类型:Class创建的对象 或者 数组都是引⽤数据类型
强制类型转换
类型转换 double > float > long > int > short > byte
⼩转换到⼤,可以直接转换,⽽从⼤到⼩,需要强制转,会有精度丢失
引⽤数据类型:Class创建的对象 或者 数组都是引⽤数据类型
四、Java核心基础数组
数组:⼀种数据结构,⽤来存储同⼀类型之的集合
通过⼀个整形下标可以访问数组中的每⼀个值, 从0开始计算,内存中存储相同数据类型的连续的空间。
数组的声明:
int [] arr;//只是声明了一个数组,但是没有初始化。
int [] arr2=new int[]; //new int[n]将会创建⼀个⻓度为n的数组
int[] arr3= { 1,2,3,4,5,6 };//数组的大小就是 初始值的个数
1.所有元素都初始化为0,boolean数组的元素会初始化为false
2.⼀旦创建了数组,就不能改变它的⼤⼩
3.数组需要初始化才可以操作,不能索引越界
五、Java内存空间堆栈
int a=1;
boolean flag=false;
Student s = new Student(); //s相当关于引用
Person p = new Person();//p相当于引用
引⽤类型有两块存储空间(⼀块在stack中,⼀块在heap中)
⼀个对象在内存中会请求⼀块空间来保存数据,访问对象的时候不会直接是访问对象在
内存中的数据,⽽是通过引⽤去访问
什么是引⽤???
也是⼀种数据类型,保存的是内存的地址,引⽤是存储在 stack栈空间⾥⾯
不同的引⽤可以指向同⼀个对象,⼀个对象可以有多个引⽤
六、java核心基础变量类型
一、 类变量(静态变量):
使⽤static声明的变量,可以直接使⽤ 类名.变量名访问
⼀个类不管创建了多少个对象,类只拥有类变量的⼀份拷⻉,数值默认值是0,布尔型默认值
是false,引⽤类型默认值是null
⽣命周期
在第⼀次被访问时创建,在程序结束时销毁
声明为public类型,⼀般这样声明 public static final
存储在⽅法区,和堆栈不⼀样的⼀个空间
二、实例变量(属性)
需要使⽤对象.变量名才可以访问
对象被实例化之后,实例变量的值就跟着确定,可以是赋值,也可以是默认值
⽣命周期
在对象创建的时候创建,在对象被销毁的时候销毁
访问修饰符可以修饰实例变量,⼀般是私有的,private修饰,然后通过⽅法来进⾏查看或者
修改
四、局部变量
⽅法中的变量
声明在⽅法、构造⽅法、语句块、形式参数等
⽣命周期
当它们执⾏完成后,变量将会被销毁
访问修饰符不能⽤于局部变量
局部变量没有初始值,必须初始化后才可以被使⽤
七、Java方法入参和返回值
⽅法⼊参和返回类型
⽅法⼊参
基础数据类型
引⽤数据类型
修饰符 返回类型 ⽅法名(参数类型 参数名,参数类型 参数名...){
//⽅法体
return
}
⽅法返回类型
return xxx 具体类型
如果不⽤返回,则⽅法返回类型上写 void
修饰符 返回类型 ⽅法名(参数类型 参数名,参数类型 参数名…){
//⽅法体
return
}
修饰符 void ⽅法名(参数类型 参数名,参数类型 参数名...){
//⽅法体
}
八、Java核心运算符和优先级
算术运算符:
注意
⾃增(++)⾃减(--)运算符是⼀种特殊的算术运算符
⾃增(++)⾃减(—)在变量左右有不同的意义
在变量左边则先⾃增减操作,再进⾏表达式运算
在变量右边则先进⾏表达式运算,在进⾏⾃增减操作
⾃增和⾃减运算符只能⽤于操作变量,不能直接⽤于操作数值或常量
关系运算符(⽤于数值的⽐较,不能是字符串等其他⾮数值)
加法 +
减法 -
乘法 *
除法 /
取余 %
⾃增1 ++
a++ 就是 a=a+1
⾃减1 --
a-- 就是 a=a-1
int a = 5;
int b = a++;
int c = ++a;
int d = a--;
int e = --a;
关系运算符(⽤于数值的⽐较,不能是字符串等其他⾮数值)
等号 ==
不等 !=
⼤于 >
⼤于或等于 >=
⼩于 <
⼩于或等于 <=
逻辑运算符
逻辑与 &&
仅当两个操作数都为真,条件才为真
有短路作⽤
逻辑或 ||
任何两个操作数任何⼀个为真,条件为真
有短路作⽤
逻辑⾮ !
反转操作数,如果条件为true,则逻辑⾮运算符将得到false
赋值运算符
赋值 =
加和赋值 + =
减和赋值 - =
乘和赋值 * =
除和赋值 / =
int a=5;
int c=10;
// c=c+a;
c +=a;
//c =c-a;
c -=a;
//c =c*a;
c *=a;
//c=c/a
c /=a;
三⽬运算符
格式
条件 ? 成功 : 否则
例⼦
int age =5;
age > 18: "成年": "未成年"
运算符优先级
和数学运算⼀样,可以加括号控制优先级
乘除取余 * / %
加减 + -
关系运算>, >=, <,<=
相等 ==、!=
逻辑与 &&
逻辑或 ||
三⽬运算 ? :
赋值 =