愿景:"让编程不再难学,让技术与生活更加有趣"
更多架构课程请访问 xdclass.net
目录
第1集 Java程序的标识符和关键字
简介:讲解Java程序的标识符和常用关键词
-
什么是标识符:java程序的组成,比如类名、方法名、变量名等
注意点: * 标识符可以由字母、数字、下划线_ 、美元符($)组成,但不能包含%,空格等其他特殊字符,不能以数字开头 * 区分大小写 * 不能是java关键字
* 合法的标识符:age, User, _Student, $Boy, _1_value * 不合法的标识符:#age, 8User, my friend, class, if
-
什么是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
第2集 java核心基础知识之修饰符上集
简介:讲解java修饰符和使用场景
-
修饰符的作用是啥?用来定义类、方法或者变量的访问权限
-
两大类
-
访问修饰符:
-
限定类、属性或方法是否可以被程序里的其他部分访问和调用的修饰符
-
-
private < default < protected < public
-
非访问修饰符:用来修饰或者辅助功能,
-
例如static、final、abstract、synchronized等
-
-
-
主要记住:
-
外部类修饰符: public或者为默认
-
方法、属性修饰符:private、default、protected、public
-
public - 公开对外部可见
-
protected - 对包和所有子类可见
-
private - 仅对类内部可见
-
-
-
方法级别
修饰符 | 当前类 | 同一包内 | 不同包中的子类 | 子类(不同包) |
---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
default | Y | Y | N | N |
private | Y | N | N | N |
第3集 java核心基础知识之修饰符下集
简介:讲解java修饰符和使用场景
-
主要记住:
-
方法、属性修饰符:private、default、protected、public
-
public - 公开对外部可见
-
protected - 对包和所有子类可见
-
private - 仅对类内部可见
-
-
-
属性级别
修饰符 | 当前类 | 同一包内 | 不同包中的子类 | 不同包中的非子类 |
---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
default | Y | Y | N | N |
private | Y | N | N | N |
-
属性或者成员变量,都用private修饰,不用其他的,这个是java开发的约束
-
Java中public class与class的区别
-
在一个*.java的文件中,只能有一个public class的声明,有多个public则编译报错,其类名称必须与文件名称完全一致,但是允许有多个class的声明,
public class A{ public static void main(String [] args){ System.out.println("A"); } }; class B{}; class C{};
-
只有public修饰的类,才能在包外部包可见;否则只是包内私有的类,类不能被其他包访问。
-
第4 集 Java核心基础之数据类型
简介:讲解Java内置数据类型
-
计算机基础知识
-
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 :字符串对象,也是引用数据类型
-
第5集 java核心基础之数组讲解
简介:讲解什么是数组和使用场景
-
场景:需要声明 0~99,100个整数
int i=0; int i1=1; ... int i99 = 100;
-
什么是数组
-
一种数据结构,用来存储同一类型之的集合
-
通过一个整形下标可以访问数组中的每一个值, 从0开始计算,记住,特别重要
-
内存中存储相同数据类型的连续的空间使用数组
-
-
-
-
声明数组变量时,需要指出数据类型和数组变量的名字
//声明数组,但没有初始化 int [] numbers; //使用new运算符创建数组 int [] numbers2 = new int[100];
-
new int[n]将会创建一个长度为n的数组
//可以使用这两种形式声明数组,推荐第一种 int [] numbers; int numbers2 [];
-
-
数组初始化和匿名数组
//初始化,数组的大小就是初始值的个数 int[] numbers = { 1,2,3,4,5,6 }; //匿名数组 new int[] { 1,2,3,4,5,6 };
-
注意:
-
所有元素都初始化为0,boolean数组的元素会初始化为false
-
一旦创建了数组,就不能改变它的大小
-
数组需要初始化才可以操作,不能索引越界
-
-
拓展
-
上述的是一维数组
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];
-
-
数组里面有很多方法,是自带的方法和属性
-
获取数组长度的属性名称 length,使用就是 数组名.length
-
第6集 Java内存空间堆栈讲解
简介:讲解Java内存空间堆栈
-
数据类型
-
基本数据类型 byte,short, int,long, float,doble,boolean,char
-
引用数据类型,即除了基本的变量类型之外的所有类型
-
-
java在内存中堆、栈两块存储空间数据类型在内存中使用介绍
-
-
-
基本的变量类型只有一块存储空间(分配在stack中),
-
传递的时候直接是值传递,
-
对数据进行操作,不影响原先的值
-
-
引用类型有两块存储空间(一块在stack中,一块在heap中)
-
一个对象在内存中会请求一块空间来保存数据,访问对象的时候不会直接是访问对象在内存中的数据,而是通过引用去访问
-
什么是引用???
-
也是一种数据类型,保存的是内存的地址,引用是存储在 stack栈空间里面
-
-
-
不同的引用可以指向同一个对象,一个对象可以有多个引用
-
-
下面代码在堆栈里面怎么分配的
-
int a=1; boolean flag=false; Student s = new Student(); Person p = new Person();
-
-
引用后修改结果如何呢?
-
因为字符串、数组或者对象是引用类型,所以修改后正在的数据都会发生变化
-
下面代码分别输出什么内容
String a = "小D课堂学习java架构课程"; String b = "l love java"; System.out.println(a); System.out.println(b); b = a ; System.out.println(a); System.out.println(b); a = "小D课堂学习java架构课程,现在在学java基础"; System.out.println(a); System.out.println(b);
数组拷贝,下面代码输出的是什么
-
-
int [] a = {1,2,3}; int [] b = a; System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); b[0] = 0; System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); 数组是引用类型,所有的引用都是指向这个值的, 也就是这个对象
第7集 Java核心基础之变量类型
简介:讲解java类里面的变量类型
-
类变量(静态变量):
-
使用static声明的变量,可以直接使用 类名.变量名访问
-
一个类不管创建了多少个对象,类只拥有类变量的一份拷贝,数值默认值是0,布尔型默认值是false,引用类型默认值是null
-
生命周期
-
在第一次被访问时创建,在程序结束时销毁
-
-
声明为public类型,一般这样声明 public static final
-
存储在方法区,和堆栈不一样的一个空间
public class Student{ public static final String PREFIX = "我是叫"; }
-
-
实例变量(属性)
-
需要使用对象.变量名才可以访问
-
对象被实例化之后,实例变量的值就跟着确定,可以是赋值,也可以是默认值
-
生命周期
-
在对象创建的时候创建,在对象被销毁的时候销毁
-
-
访问修饰符可以修饰实例变量,一般是私有的,private修饰,然后通过方法来进行查看或者修改
public class Student { //介绍前缀 public static final String PREFIX = "我是叫"; //年龄 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 {
//介绍前缀
public static final String PREFIX = "我是叫";
//年龄
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;
}
}
第8集 方法入参和返回值讲解
简介:讲解java方法入参和返回类型讲解
-
方法入参和返回类型
-
方法入参
-
基础数据类型
-
引用数据类型
修饰符 返回类型 方法名(参数类型 参数名,参数类型 参数名...){ //方法体 return }
-
-
方法返回类型
-
return xxx 具体类型
-
如果不用返回,则方法返回类型上写 void
修饰符 void 方法名(参数类型 参数名,参数类型 参数名...){ //方法体 }
-
-
第9集 Java核心之基础运算符上
简介: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;
-
注意
-
自增(++)自减(--)运算符是一种特殊的算术运算符
-
自增(++)自减(—)在变量左右有不同的意义
-
在变量左边则先自增减操作,再进行表达式运算
-
在变量右边则先进行表达式运算,在进行自增减操作
-
-
自增和自减运算符只能用于操作变量,不能直接用于操作数值或常量
-
-
-
关系运算符(用于数值的比较,不能是字符串等其他非数值)
等号 == 不等 != 大于 > 大于或等于 >= 小于 < 小于或等于 <=
第10集 Java核心之基础运算符和优先级下集
简介:java核心基础之常见运算符,逻辑、赋值运算符
-
逻辑运算符
-
逻辑与 &&
-
仅当两个操作数都为真,条件才为真
-
有短路作用
-
-
逻辑或 ||
-
任何两个操作数任何一个为真,条件为真
-
-
有短路作用
-
逻辑非 !
-
反转操作数,如果条件为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: "成年": "未成年"
-
运算符优先级
-
和数学运算一样,可以加括号控制优先级
-
乘除取余 * / %
-
加减 + -
-
关系运算>, >=, <,<=
-
相等 ==、!=
-
逻辑与 &&
-
逻辑或 ||
-
三目运算 ? :
-
赋值 =
-
-
干货文档
关注公众号发送:“CSDN干货文档” 即可领取