Java基础知识总结(一)

本文章记录笔者在学习Java历程中总结的一些简单问题,以便后续复习回顾,后面的天数内会有重复的问题

DAY03

  1. 第一个Java代码
class Hello  {
		public static void main (String[] args) {
			System.out.println("hello world");
		}
	}
  1. 八大基本数据类型
	整型:  byte  short  int  long
	浮点:  float  double
	字符:  char
	布尔:   boolean
  1. 声明整型和浮点和布尔类型的数据
	int a = 20;
	float f1 = 23.4f;
	double d1 = 3648; 
  1. 变量名字的命名规范
	1.首字母小写
	2.由数字,字母,_ , $组成的,不能以数字开头
	3.见名知意
	4.小驼峰  或者_组成
	5.不能以Java的关键字
  1. 算术运算符有哪些
   -  * /  %   +=  -=   *=  /=  %=

DAY04

  1. 八大基本数据类型
	byte  short  int  long   开发中用int
	float  double  
	char   使用单引号  
	boolean 
  1. 逻辑短路原则
逻辑或短路:只要⼀个为真,或结果就为真,后⾯的不算了。
逻辑与短路:只要有⼀个为假,结果就为假。
如果&&左边的算式结果为假,那么右边的不再运⾏,直接得出结果为假。

8.if分支语法格式和执行流程

if (布尔表达式) {
	语句体
}

执行流程: 如果布尔表达式为true, 就执行大括号里面的语句体。 如果布尔表达式为false,就跳过大括号里面的语句体,接着往下执行

9.if-else分支语法格式和执行流程

if (布尔表达式) {
	语句体1
} else {
	语句体2
}

执行流程: 如果布尔表达式为true 执行语句体1 ,如果布尔表达式为false 执行 语句体2

最重要的看布尔表达式值。 两者只能选择其一。

10.if-else if分支语法格式和执行流程

if (布尔表达式1) {
	语句体1
} else if (布尔表达式2) {
	语句体2
} else if (布尔表达式n) {
	语句体n
} else {
	语句体n+1
}

执行流程:
​ 如果碰到if语句后面的小括号中的表达式为true的时候,就执行相对应的大括号后面的语句体
​ 其他语句体一概不执行
应用场景: 多种情况

11.switch-case语法格式

swicth (表达式) {
	case 常量1:
		语句体1;
		break;
	case 常量2:
		语句体2;
		break;
	case 常量3:
		语句体3;
		break;
	...
	default:
		语句体n;
		break;
}

执行流程: switch后面小括号中的表达式值 去和 case后面的常量进行匹配。如果他们两个一样的话
就执行当前的语句体,其他语句体不执行

12.swith关键字后面的小括号中的表达式可以是什么数据类型?

switch(表达式) {

}
byte   short  int    char   String  枚举

13.控制台输入的代码如何写 ?

  • 获取int类型的数据 nextInt()
  • 获取字符串类型的数据 next()
  • 获取字符类型的数据 next().charAt(0)
		Scanner scanner = new Scanner(System.in);
		//获取控制台输入的int类型的数据
		System.out.println("请输入一个整数:");
		int a = sb.nextInt();
		System.out.println("Line11: " + a);
		
		//获取控制台输入的byte类型的数据
		System.out.println("请输入一个整数:");
		byte b = sb.nextByte();
		System.out.println("Line14:" + b);
		
		//获取控制台输入的float类型的数据
		System.out.println("请输入一个小数:");
		float f1 = sb.nextFloat();
		System.out.println("Line18:" + f1);

		//获取控制台输入的布尔类型的数据
		System.out.println("请输入一个布尔类型的数据:");
		boolean b1 = sb.nextBoolean();
		System.out.println("Line23:" + b1);

		//获取控制台输入的字符串类型的数据
		System.out.println("请输入一个字符串:");
		String str = sb.next();//获取控制台字符串的方法
		System.out.println("呵呵哒:" +str);
		
		//获取控制台输入的字符类型的数据
		System.out.println("请输入一个字符串:");
		//sb.next()  取控制台的字符串的:  例如   abcdef
		//charAt(0)   取你字符串中  第一个位置的字符   a 
		//charAt(1)取你字符串中  第二个位置的字符   b 
		char ch = sb.next().charAt(0);
		System.out.println("Line32:" + ch);
		//字符的获取 是在字符串的基础之上  获取的

DAY05

  1. switch后面的小括号里面的 数据类型是那种数据类型?
 byte short int char String 枚举
  1. if-else的语法格式
if (布尔表达式) {
	语句体1
} else {
	语句体2
}
  1. switch-case的语法格式
swicth (表达式) {
	case 常量1:
		语句体1;
		break;
	case 常量2:
		语句体2;
		break;
	case 常量3:
		语句体3;
		break;
	...
	default:
		语句体n;
		break;
}
  1. 逻辑的短路原则
逻辑或短路:只要⼀个为真,或结果就为真,后⾯的不算了。
逻辑与短路:只要有⼀个为假,结果就为假。
如果&&左边的算式结果为假,那么右边的不再运⾏,直接得出结果为假。
  1. while循环的语法格式及执行流程
while (布尔表达式) {
	语句体
}

执行流程: 当代码执行到while关键字的时候,先去判断布尔表达式,如果布尔表达式为false,就不会执行语句体。
如果布尔表达式为true 执行语句体,然后(重要) 再去判断布尔表达式,如果布尔表达式为true
执行语句体,然后再去判断布尔表达式,直到布尔表达式为false的时候,循环就结束了(就不再执行语句体了)。接着执行循环以外的代码

  1. while和do-while的循环的区别
do {
	语句体
} while(布尔表达式);

Do while和while的区别就是do while不管条件是否成立,都至少执行一次。

  1. for循环的语法格式和执行流程
for (表达式1; 布尔表达式2; 表达式3) {
	语句体
}

表达式1: 初始化的条件

表达式2: 终止条件

表达式3: 循环条件

执行流程: 首先执行表达式1,再执行表达式2,如果布尔表达式2为true,执行大括号中语句体。然后再执行表达式3,再执行表达式2,再次判断布尔表达式2,直到为false,就不执行语句体。就意味着循环结束

  1. 使用for循环打印99乘法表
1*1=1

1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
...
找规律   几行  9行  第一行 1列  第二行  2.... 
		每行的列数和 每行息息相关的
public class Demo15 {
	public static void main(String[] args) {
		
		//打印九九乘法表
		for (int i = 1; i < 10; i++) {
			for (int j = 1; j <= i; j++) {
								//1*2=2
				System.out.print(j + "*" + i + "=" + i*j + "\t");
			}
			System.out.println();
		}
	}
}

DAY06

  1. 八大基本数据类型
byte  short  int  long   char  boolean float  double
  1. 声明变量的语法格式
数据类型  变量名字 =;
  1. 使用for循环打印等腰三角形
for (int i = 1; i <= 4; i++) {//行
	for(int j = 1; j <= 4-i; j++) {//打印的空格
		System.out.print(" ");
	}
	for (int j = 1; j <= 2*i-1; j++) {//打印*
		System.out.print("*");
	}
	System.out.println();
}
  1. break和continue关键字的简单介绍
break  在循环和switch中使用  终止 打断
continue  在循环中使用   终止本次的循环,然后进入到下一次的循环
  1. 四种方法的语法格式分别列出来

无参无返回值的方法:

public static void  方法的名字() {

}
有参无返回值的方法
public static void 方法的名字 (数据类型 变量1, 数据类型 变量2,...) {

}
无参有返回值的
public  static 数据类型 方法的名字() {
		return  返回值;//返回值的数据类型和方法的声明处的数据类型保持一致的
	}
有参有返回值的
public  static 数据类型 方法的名字 (数据类I型  变量1, 数据类型 变量2,...) {
		return 返回值;
}

DAY07

  1. return关键字的用法
return返回       有返回值的方法的时候才用  关键字return
	 return 后面必须是返回的值
	 下面一行不可以有代码,代表结束
	 循环中  不能使用return关键字
  1. 声明方法的四种形式
	无参 无返回值的
	有参 无返回值的
	无参有返回值的
	有参 有返回值的
  1. 什么是形参,什么是实参
	在方法的声明处叫 形参    形式参数
	在方法的调用处叫实参  
  1. 数组的三种声明方法
	1. s数据类型[] 数组的名字 = {值1, 值2, 值3,...};
		int[] arr = {1,2,3,4};
	2.数据类型[] 数组的名字 = new 数据类型[容量];
	int[] arr = new int[3];
	arr = {0,0,0};
	3.数据类型[] 数组的名字 = new 数据类型[]{值1, 值2, 值3,...};
  1. 对第二种数组进行声明的时候如何进行赋值
	int[] arr = new int[3];//arr = {0,0,0}
	arr[0] = 78;//[78,0,0]

DAY09

  1. 声明一个类的语法格式
calss  Person {
	属性
	String name;
	方法
	public void eat () {
		
	}
}
  1. 通过类创建一个对象
Person person1 = new Person();
  1. 无参数的构造方法语法格式
public 类名 () {
	
}
  1. 有参数构造方法的语法格式
public Person (String name, int age) {
	this.name = name;
	this.age = age;
}
  1. 构造方法的作用是啥
初始化对象
  1. 在类中声明方法的语法格式是什么
无参无返回值的方法
public static void 方法的名字 () {
 	语句体
}
有参无返回值的方法
public static void 方法的名字 (数据类型 变量1, 数据类型 变量2,... ) {
 	语句体
}
无参有返回值的方法
public static  数据类型 方法的名字() {
 	return 返回的数据;
}
有参有返回值的方法
public  static 数据类型  方法的名字 (数据类型 变量1, 数据类型 变量2,...) {
 	return  返回的数据;
}

DAY10

  1. 构造代码块和构造方法的区别
    构造代码块:
语法格式 
 {
  	语句体
 }

构造方法:

public 类 () {
  
 }
  1. 局部变量和成员变量区别
区别成员变量局部变量
定位位置类的大括号的后面 也叫属性定义在方法体中
作用描述一个类的属性或者特征的在方法体中保存变量的值的
初始化的值有默认的初始值String=>null int ==>0没有默认的值使用的时候一定要赋值
作用域作用整个类只能在当前方法中使用
  1. 声明类的语法格式
class Person {
	属性
	构造方法
	方法
}
  1. 一个类中属性的意义是啥
描述一类的事物的特征, 主要目的对对象进行存储值的
	String name;
  1. 构造方法的语法格式
无参构造方法:
public 类 () {
	
}

有参构造方法:
public 类 (形参) {
	
}
  1. 逻辑运算符的简单介绍
&&&
相同点:
这两个逻辑运算符都表示:“与”,一个为False,全为False。

区别:
&:表达式a & 表达式b 在运算时,表达式a和b都会被执行,进行True和False的判断。
&&:表达式a && 表达式b 在运算时,如果表达式a为False,则表达式b不进行运算,直接返回结果,计算效率高。

|||
相同点:
这两个逻辑运算符都表示:“或”,一个为True,全为True。

区别:
|:表达式a | 表达式b 在运算时,表达式a和b都会被执行,进行True和False的判断。
||:表达式a || 表达式b 在运算时,如果表达式a为True,则表达式b不进行运算,直接返回结果,计算效率高。

!
逻辑非:取相反结果

^
逻辑异或:相同为False,相异为True
————————————————
版权声明:本文为CSDN博主「Kevinllli」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42516475/article/details/121722155
  1. 对属性进行封装 如何封装
	1.对属性加上private 修饰
	2.写 set和get方法

DAY11

  1. 多类合作:成年人类(包含)孩子属性(包含)玩具属性
class RenLei {//人类
	
	String name;
	int age;
	BigDog bigDog;//bigDog这个对象带了三个数据   牛彩云    3   黑色
}
class BigDog {
	String name;
	int age;
	String color;
	
}
public class Demo8 {
	public static void main(String[] args) {
		
		BigDog bd = new BigDog();
		bd.name = "牛彩云";
		bd.age = 3;
		bd.color = "黑色";
		RenLei renLei = new RenLei();
		renLei.name = "二贝";
		renLei.age = 38;
		renLei.bigDog = bd;
		System.out.println(renLei.name);
		System.out.println(renLei.age);
		//人的狗 狗的名字
		System.out.println(renLei.bigDog);//内存地址
		System.out.println(renLei.bigDog.name);//  牛彩云
		System.out.println(renLei.bigDog.age);//3
		System.out.println(renLei.bigDog.color);//黑色
		
		
	}
}
  1. 继承的语法格式
class A {
	
} 
class B extends A {
	
}
B可以继承A非私有化的属性和方法
  1. this关键字的使用
this代表是当前的对象
1.this可以调用属性和方法   
2.this可以调用构造方法

DAY12

  1. 成员变量和局部变量的区别
内存地址:   局部变量在栈区     						成员变量 在堆区
作用域:     局部变量一般在方法中   					成员变量  整个类中
赋值方式:    局部变量在使用一定要赋值,没有默认值的    	成员变量有默认值
  1. 继承的语法格式
关键字  extends
class A {
	
} 
class B extends A {
	
}
  1. 子类继承父类一些要求关于属性和方法
子类只能继承父类中的public或者默认的属性或者方法
  1. 重写的目的
重写的目的:  和继承有关  重写的是方法    子类是可以继承父类的非私有化的方法的

但是有的时候父类的方法需求满足不了子类的需求了,这个时候在子类中需要重写父类的方法
  1. 重写和重载的区别
重写【override】
	1.必须是继承关系
	2.在子类中去重写父类的方法
	3.在子类的重写的方法 要求必须方法名字  一样  参数一样  返回值一样   
	
重载【overload】
	1.必须在同一个类中
	2.方法的名字必须一样
	3.方法的参数必须不一样
	4.方法的返回值可以一样可以不一样
	5.无参构造方法和有参构造方法 是方法的重载
  1. this和super的区别
this:

​		代表当前的对象

​		1.this可以调用属性和方法

​		2.this可以调用构造方法

super:

​		代表是父类的对象

​		1.super可以调用属性和方法    【不太重要】

​		2.super可以调用父类的构造方法
  1. 抽象类详解 共9条
1.如果一个类中有抽象方法,那么这个类一定是抽象类

2.抽象方法是一个没有方法体的方法,是一个不完整的方法

3.抽象类中能有普通方法吗?  可以

4.抽象类能被实例化吗? 不能

5.抽象类不能被实例化,然后可以使用普通类去继承抽象类

6.在子类中 必须去重写父类的所有的抽象方法,让抽象方法变得有意义

7.在抽象类中,非抽象的方法能不能在子类被重写的,可以的

8.一个抽象类可以继承另外一个抽象类

9.一个抽象类也可以继承一个非抽象的类

DAY13

  1. 抽象类的声明语法格式
abstract  class  Person {
	属性
	普通方法
	抽象方法
}
  1. 关于声明和使用抽象类得注意事项(共9条)
1.如果一个类中有抽象方法,那么这个类一定是抽象类

2.抽象方法是一个没有方法体的方法,是一个不完整的方法

3.抽象类中能有普通方法吗?  可以

4.抽象类能被实例化吗? 不能

5.抽象类不能被实例化,然后可以使用普通类去继承抽象类

6.在子类中 必须去重写父类的所有的抽象方法,让抽象方法变得有意义

7.在抽象类中,非抽象的方法能不能在子类被重写的,可以的

8.一个抽象类可以继承另外一个抽象类

9.一个抽象类也可以继承一个非抽象的类
  1. final关键字
final: 

​	字面意思:  最终的  最后的意思   修饰符

​	用法:

​		1.final可以修饰成员变量 

​			final修饰的成员变量必须初始化(赋值),一旦被赋值之后,就无法被修改

​		2.final可以修饰局部变量

​			final修饰的局部变量可以暂时不用赋值, 使用的时候必须赋值,一旦赋值以后就不能改了

​		3.final可以修饰成员方法

​			final修饰的方法不能被子类重写

​		4.final可以修饰类

​				final修饰的类 不能被继承

​		5.final可以修饰对象的引用

​				这个引用一旦被赋值 就无法被修改
  1. 接口得声明语法格式
interface A {
	属性   常量 由public  static  final 修饰的
	方法   一般都是抽象方法   void eat();
	
}
  1. 关于声明和使用接口的注意事项(共9条)

1.使用关键字 interface来声明Java中的接口

2.接口下面是可以有属性的, 只不过属性必须赋值,因为默认带了 public  static  final   表示的是常量

3.接口下面 的方法都是抽象方法,尽管没有带abstract    默认也是public的

4.接口下面是一般都是抽象方法 有特殊的情况呢jdk1.8之后,增加了可以使用default修饰的方法 是可以带有方法体的

5.接口下面没有构造方法,就意味无法实例化

6.用一个普通类去实现(implements)接口

7.实现接口的时候一定要重写所有的抽象的方法,默认的方法可以重写也可以不写

8.一个类可以实现(implements)多个接口  写法  implements D, C,F

9.一个接口可以去继承(extends)另外一个接口

DAY14

  1. 多态的向上转型和向下转型
向上转型:	父类的引用指向子类的对象	
父类 父类的引用=new 子类();	//会自动转
向下转型:子类 子类的引用=(子类) 父类的引用	先向上转型,再向下转型

  1. instanceof关键字的用法
A instanceof B
A:对象名字
B:类
  1. 抽象类声明方式
abstract class Person{
	public abstract void eat();
}
  1. 接口的声明方式
inteface A{

}
  1. 继承的语法格式
class B extends A{

}
  1. 重写与重载
1.定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。

2.范围不同---重载是在一个类中,重写是子类与父类之间的。

3.多态不同---重载是编译时的多态性,重写是运行时的多态性。

4.返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型。

5.参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同。

6.修饰不同---重载对访问修饰没有特殊要求,重写访问修饰符的限制一定要大于被重写方法的访问修饰符。
  1. final关键字的用法
1.final修饰成员变量   必须赋值   一旦赋值 无法修改
2.final 修饰局部变量  可以先不赋值  使用的时候赋值 一旦赋值 无法修改
3.final 修饰方法   不能被重写
4.final 修饰类   不能被继承
5.final  修饰对象的引用    这个对象的引用不能再赋值了  fianl  Person person = new Person();

DAY15

  1. static 关键字用法
1.static 修饰成员变量   使用  类名.属性名字
2.static 修饰成员方法   使用  类名.方法名字   不能使用非静态的属性和方法的
3.static 修饰代码块    只要类加载了  这个静态代码块会执行的
  1. final关键字用法
1.final修饰成员变量   必须赋值   一旦赋值 无法修改
2.final 修饰局部变量  可以先不赋值  使用的时候赋值 一旦赋值 无法修改
3.final 修饰方法   不能被重写
4.final 修饰类   不能被继承
5.final  修饰对象的引用    这个对象的引用不能再赋值了  fianl  Person person = new Person();
  1. 接口的使用
interface A {
	
}
接口都是抽象的方法 或者 是default修饰的方法  
普通类 实现 implements 接口  必须重写所有的抽象的方法
  1. 抽象类的使用
abstract class B {
		
}
普通类 继承抽象类   必须重写抽象的方法
  1. 多态的理解
	方法的多态 :  重写 和重载
	对象的多态 :  向上转型   父类的引用指向子类的对象
	方法的参数是父类的引用   实参 是子类的真实的对象
  1. 继承的理解
class B  extends A {
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值