基础语法
- 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: "成年": "未成年"