java学习总结(概念)

day02

1.什么是大数据

2.大数据的特征

3.人机交互的方式

4.java的特点

5.JDK、JRE、JVM的定义以及关系

6.二进制、八进制、十进制、十六进制的开头表示

7.java中标识符的命名规则

8.数据类型的分类

9.基本数据类型表示范围的排序

day05

1.java的内存分区

2.什么事方法的重载

day06

3.数组的定义

4.基本数据类型和引用数据类型的比较

5.数组越界出现的异常

6.什么是可变长参数

day07

1.静态成员和非静态成员

2.静态方法和非静态方法

3.成员变量和局部变量的区别

4.static的作用

5.this的功功能

6.this在构造方法中的使用

7.静态代码段、代码段、构造方法执行先后顺序

8.什么是封装性

day08

1.什么不可以被继承

2.public、protected、default、private的访问权限

3.子类重写父类的方法是的注意点有哪些?

4.当我们创建构造方法的时候,为什么一定要调用super?

5.final修饰的内容 类 成员变量 局部变量 方法

day09

Person person=new Student();

person.show();//只能调父类中的方法,如果子类重写了方法,调用的是重写的方法

//父类和子类有重名的属性,在多态下只能调用父类的

1.编译阶段和运行阶段程序可以识别哪些?

2.在向上或是向下转型的时候可以会失败,会造成什么异常?

3.比较final,abstract,static,private

day10

1.接口中的属性和方法默认是什么权限的?

2.抽象类和接口的异同

3.接口的新特性

day11

1.包装类中拆箱和装箱 int->integer integer->int

2.既然后了自动装箱和拆箱,为什么还要有手动拆箱和装箱呢?

3.字符串和基本数据类型之间的转化

4.java中的异常分类

day13

bambda表达式是java1.8出现的新特性

1.什么是函数式接口

lambda表达式需要注意的问题 局部变量默认是一常量,不可以被修改

2.List和Set的对比

day14

1.泛型的好处

2.ArrayList和LInkedList的对比

day15

1.HashMap和HashTable的区别

day16

1.程序、进程、线程

2.从运行态-->就绪态的方式有纳那哪些?

3.为什么通过调用start()方法开启线程,而不是通过手动调用run()方法?

4.实例化线程的两种方式并进行对比

5.什么是线程的礼让

6.什么时候使用同步代码块或是同步方法

day17

1.死锁出现的情况

2.线程停止的三种方式

3.什么是线程的合并

4.什么是守护线程

day02

1.大数据就是对海量数据进行存储和计算

2.大量、价值、速度、多样

3.命令行、图形界面

4.平台无关性:一次编写,到处执行

面向对象:java是面向对象的语言,可以对类、对象、封装、继承、多态有很好支持

解释执行:首先将java程序编译成.class字节码文件对象,然后再到虚拟机中执行

简单性:java语法简单,容易学习

多线程:java支持多个线程同时执行,并提供多个线程之间同步机制

5.JDK是java的开发环境,包含JRE,java核心类库,开发工具包

JRE是java的运行环境,包含JVM和解释器,有java完整的运行环境

JVM是java虚拟机

6.二进制0b、八进制0、十六进制0x

7.包括字母、数字、下划线、美元

开头不能是数字

区分大小写

不能和关键字和保留字重名

长度不限制,最好15个以内

8.数据类型:基本数据类型和引用数据类型

基本数据类型:数值型、字符型(char)、布尔型(boolean)

数值型:整形数据类型和浮点型数据类型

整形数据类型:byte、short、int、long

浮点型数据类型:float、double

9.byte<short<int<long<float<double

char<int<long<float<double

day03

1.堆区、栈区、方法区、本地方法区、寄存器

栈区:堆区的数据是先进后出,使用完立即释放,存放的是局部变量和函数

堆区:存放放的是实体(数组和对象),实体没有赋值的话,会有默认的值,int是0,boolean是false,堆区存放的数据会在某个时刻通过垃圾回收机制进行回收数据

方法区:存放二进制文件

本地方法区:引入外界的c、c++文件

寄存器:有计数的功能,main方法中语句的执行有先后顺序

2.在同一个类中,方法的名字相同,参数类型不同(参数的个数、先后循序、参数的类型)

3.数组是一个长度不可变,内存空间连续,数组中可以存放基本数据类型和引用数据类型

4.基本数据类型存放的是值,是十进制的,引用数据类型存放的是地址,是十六进制的

5.ArrayIndexOutOfBoundsException

6.可以接收多个类型相同的参数,一个方法中只能用一个可变长参数,接收的参数类型不同时会报错,必须放到参数的最后一个位置,使用的方法 int...name

day07

  1. 静态成员在类加载到内存的时候就分配内存空间了,非静态成员在实例化的时候才会分配内存空间

2.静态方法中只能访问静态的

非静态方法中可以访问静态和非静态的

3.作用域:成员变量是整个对象,局部变量是从开始到函数结束

默认值:成员变量有默认值,局部变量没有默认值

释放机制:成员变量和对象保持一直,通过垃圾回收机制进行回收,局部变量用完立即释放

存放位置:成员变量在堆区,局部变量在栈区

4.保值、工具类的创建、用于单例设计模式的实现

5.可以区分成员变量和局部变量

可以构造方法内部调用其他重载的方法,提高代码复用性,简化代码

6.不能自己调自己--死循环

不能相互调用--造成死循环

this充当构造方法的时候必须在第一行

this充当方法的时候只能是构造方法

this的使用范围是当前类中

this只能非静态方法中使用

7.静态代码段会在main方法执行之前去执行,代码段会在实例化对象的时候执行,优先于构造方法,静态代码段只会执行一次,代码段会多次执行,每次实例化对象都会执行

8.通过对属性的封装实现成员变量私有化,让它只能在类的内部可见,通过公共方法对属性进行访问

提高代码的复用性和可读性

day08

1.构造方法、私有成员、跨包子类

2.当前类、同包其他类、跨包子类、跨包其他类

3.方法名字,参数列表必须相同,子类的返回值类型小于等于父类的返回值类型,子类的访问权限大于等于父类的访问权限

4.父类中也有属性要进行初始化,而对象的属性必须由自己的构造方法进行初始化

5.类:不能有子类

方法:方法不能被重写

成员变量:始终是一个值,不能再被改变

局部变量:始终是一个值,不能再被改变

day09

1.在编译阶段程序只能识别引用,在运行阶段程序只能识别对象

2.ClassCastException

3.final、static、private不能于abstract同时使用

final修饰的类不能有子类,修饰的方法不能被重写,abstract的子类必须重写方法

static修饰的方法,必须由类调用,abstract修饰的方法必须通过子类实心

private修饰的方法不能被重写,abstract修饰的方法必须被重写

day10

1.属性默认是static、public

方法默认是abstr、public

2.相同点:

都不能创建对象

都可以写抽象方法

都可以声明引用

不同点:

接口中的属性是默认static、public

接口中的方法是默认abstract、public

接口中不可有构造方法,静态代码段、构造代码段

接口中只能写静态的普通方法,抽象类中可以写普通方法

接口可以不能定义属性,抽象类总可以定义属性

3.在java8中添加了static方法和default方法

day11

  1. integer a=Integer.valueOf(3);

    Integer a=10;

    int b=a.intValue();

2.在一个中有重载方法时需要手动拆箱

3.String s=String.valueOf("abc")

int a=Integer.parseInt("123")

4.根类:Throwable

Error

Exception

编译时异常NonRuntimeException

运行时异常RUntimeException

day13

1.在一个接口中,要求实现类的抽象方法有且只能有一个

2.List是有序的(和添加的顺序一致),可以重复

Set是无序的,不可以重复

day14

1.不用进行类型检查,可以直接使用

提高代码的可读性

可以使某些逻辑错误从运行阶段提前到编译阶段

2.相同点:

都是List集合的实现类

都是线程不安全的

对集合操作元素的方法基本一致

不同:

ArrayLIst的底层是数组

LInkedLIst的底层双链表

day15

1.HashMap是线程不安全的集合,HashTable是线程安全的集合

HashMap允许出现null,HashTable不允许

HashMap的父类是AbstractMap,HashTable的父类是Dictionary

HashMap的底层算法效率优先于HashTable

day16

1.程序:一个可执行的文件

进程:一个正在运行的程序

线程:进程的最小单元,可以看做是一条执行的通道

2.时间片用完了

线程礼让

synchronized---获取锁标记

wait---notify---获取锁标记

等待用户输入----用户输入完成

线程休眠--线程休眠结束

线程连接---线程连接结束

3.因为run是线程中的一个方法,手动开启run方法,如果线程没有抢到cpu时间片,就不能执行,调用start方法就可以让可以让线程去抢占cpu时间片,抢到cpu时间片就可以执行run方法

4.继承Thread:优点是可读性强,缺点是不灵活。java中是单继承,会影响这个类的继承

Runnable接口:优点是灵活,不会影响一个的继承,缺点是可读性差。

5.线程礼让就是当前已经抢到cpu时间片的进程去释放自己持有的cpu时间片,回到就绪态,重新去抢夺cpu资源。注:下一次有可能这个线程还抢到cpu资源

6.多个线程共享一个数据

至少有两个线程

day17

1.所有的线程处于等待状态

锁之间进行嵌套使用

2.通过使用标识符结束线程

调用stop方法---有安全问题,不建议使用

调用interrupt方法---如果目标线程等待的很长时间,则使用interrupt方法来中断该等待

3.将一个线程中的合并到另一个线程中执行,合并进来的线程优先执行

4.守护线程又叫后台线程,是一个运行咋后台,并且会和前台线程抢占cpu时间片的线程,当主线程结束后,后台任务即便没有结束,也会自动结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值