基础语法
- debug
step over: 程序向下执⾏⼀⾏
step into: 进⼊⾃定义⽅法
step out: 跳出对应的⽅法
- 标识符
概述: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
- 访问修饰符
限定类、属性或⽅法是否可以被程序⾥的其他部分访问和调⽤的修饰符
# 如下
private < default < protected < public
- ⾮访问修饰符
⽤来修饰或者辅助功能
# 例如
static、final、abstract、synchronized
-
访问修饰符修饰方法
-
访问修饰符修饰属性
-
属性或者成员变量,都⽤private修饰,不⽤其他的,这个是java开发的约束
-
Java中public class与class的区别
在⼀个*.java的⽂件中,只能有⼀个public class的声明,有多个public则编译报错,其类名称必须与⽂件名称完全⼀致,但是允许有多个class的声明,如下在一个java文件中编写多个class案例
public class A{
public static void main(String [] args){
System.out.println("A");
}
};
class B{};
class C{};
-
只有public修饰的类,才能在包外部包可⻅;否则只是包内私有的类,类不能被其他包访问
-
计算机基础
bit 位 ,即0或者1, 0101010110
byte字节,8位作为⼀个字节,字节是处理数据的基本单位
1 byte = 8bits
1KB = 1024 bytes
1MB = 1024 KB
1GB = 1024 MB
- 基本数据类型
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创建的对象 或者 数组都是引⽤数据类型;String字符串对象,也是引⽤数据类型
- 数组
⼀种数据结构,⽤来存储同⼀类型之的集合
通过⼀个整形下标可以访问数组中的每⼀个值, 从0开始计算
内存中存储相同数据类型的连续的空间
所有元素都初始化为0,boolean数组的元素会初始化为false
⼀旦创建了数组,就不能改变它的⼤⼩
数组需要初始化才可以操作,不能索引越界
- 数组使用
// 声明数组变量时,需要指出数据类型和数组变量的名字
// 声明数组,但没有初始化
int [] numbers;
//使⽤new运算符创建数组,new int[n]将会创建⼀个⻓度为n的数组
int [] numbers2 = new int[100];
//可以使⽤这两种形式声明数组,推荐第⼀种
int [] numbers;
int numbers2 [];
//初始化,数组的⼤⼩就是初始值的个数
int[] numbers = { 1,2,3,4,5,6 };
//匿名数组
new int[] { 1,2,3,4,5,6 };
- 一维数组
int [] numbers = {1,2,3};
String[] str=new String[2];
String[] str= {"apple", "xdclass", "cat", "dog"};
- 多维数组
//创建并初始化
int [][] numbers = {[1,2,3],[4,5,6],[7,8,9]}
// 二维数组
int [][] numbers2 = new int[3][3];
- 数据类型
基本数据类型 byte,short, int,long, float,doble,boolean,char
引⽤数据类型,即除了基本的变量类型之外的所有类型
- 数据类型在内存中使⽤
基本的变量类型只有⼀块存储空间(分配在stack中)
传递的时候直接是值传递
对数据进⾏操作,不影响原先的值
引⽤类型有两块存储空间(⼀块在stack中,⼀块在heap中)
⼀个对象在内存中会请求⼀块空间来保存数据,访问对象的时候不会直接是访问对象在内存中的数据,⽽是通过引⽤去访问
引⽤: 也是⼀种数据类型,保存的是内存的地址,引⽤是存储在 stack栈空间⾥⾯
不同的引⽤可以指向同⼀个对象,⼀个对象可以有多个引⽤
- 类变量(静态变量)
使⽤static声明的变量,可以直接使⽤ 类名.变量名访问
⼀个类不管创建了多少个对象,类只拥有类变量的⼀份拷⻉,数值默认值是0,布尔型默认值是false,引⽤类型默认值是null
⽣命周期: 在第⼀次被访问时创建,在程序结束时销毁
声明为public类型,⼀般这样声明 public static final
存储在⽅法区,和堆栈不⼀样的⼀个空间
public class Student{
public static final String PREFIX = "我是叫";
}
- 实例变量(属性)
需要使⽤对象.变量名才可以访问
对象被实例化之后,实例变量的值就跟着确定,可以是赋值,也可以是默认值
⽣命周期: 在对象创建的时候创建,在对象被销毁的时候销毁
访问修饰符可以修饰实例变量,⼀般是私有的,private修饰,然后通过⽅法来进⾏查看或者修改
public class Student {
//年龄
private int age;
//姓名
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- 局部变量
⽅法中的变量
声明在⽅法、构造⽅法、语句块、形式参数等
⽣命周期: 当它们执⾏完成后,变量将会被销毁
访问修饰符不能⽤于局部变量
局部变量没有初始值,必须初始化后才可以被使⽤
public class Student {
//年龄
private int age;
//姓名
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//⾃我介绍⽅法
public String introduce(){
// 局部变量
String content = PREFIX + name + ",年龄是" + age;
return content;
}
}
- ⽅法⼊参: 基础数据类型、引⽤数据类型
修饰符 返回类型 ⽅法名(参数类型 参数名,参数类型 参数名...){
//⽅法体
return
}
- ⽅法返回类型
return xxx 具体类型
如果不⽤返回,则⽅法返回类型上写 void
# 如下
修饰符 void ⽅法名(参数类型 参数名,参数类型 参数名...){
//⽅法体
}
- 算术运算符
加法 +
减法 -
乘法 *
除法 /
取余 %
取余 %
⾃增1 ++
a++ 就是 a=a+1
⾃减1 --
a-- 就是 a=a-1
⾃增(++)⾃减(--)运算符是⼀种特殊的算术运算符
⾃增(++)⾃减(—)在变量左右有不同的意义
在变量左边则先⾃增减操作,再进⾏表达式运算
在变量右边则先进⾏表达式运算,在进⾏⾃增减操作
⾃增和⾃减运算符只能⽤于操作变量,不能直接⽤于操作数值或常量
- 关系运算符(⽤于数值的⽐较,不能是字符串等其他⾮数值)
等号 ==
不等 !=
⼤于 >
⼤于或等于 >=
⼩于 <
⼩于或等于 <=
- 逻辑运算符
逻辑与 &&
仅当两个操作数都为真,条件才为真
有短路作⽤
逻辑或 ||
任何两个操作数任何⼀个为真,条件为真
有短路作⽤
逻辑⾮ !
反转操作数,如果条件为true,则逻辑⾮运算符将得到false
- 赋值运算符
赋值 =
加和赋值 + =
减和赋值 - =
乘和赋值 * =
除和赋值 / =
- 三⽬运算符
格式
条件 ? 成功 : 否则
例⼦
int age =5;
age > 18: "成年": "未成年"