java基础知识点回顾

java基础数据类型

bollean 1

char 2

byte 1, short 2 , int 4, long 8

float 4, double 8

-----------------------------------------------------

java 四大特征

抽象,封装,继承,多态

----------------------------------------------------

override 和 overload

override(重写):子类重写父类方法体,方法名,返回值,参数不变。

overload(重载):方法名相同,参数不同(类型,数量)。

-----------------------------------------------------

抽象类 和 接口

抽象类:类中含有(abstract)标记的抽象方法,必须是(abstract)标记的抽象类,但抽象类中可以没有抽象方法。

接口:由抽象方法和常量的集合。接口中都是public方法和final常量。

-----------------------------------------------------

继承(extends) 和 实现(implements)

继承:子类继承父类可以获得父类的 非私有(private)属性和方法,可以重写父类的成员方法;

    构造方法不能继承,若想调用父类的构造方法可以 super(),有参数可以添加参数。

实现:子类必须重写接口的所有方法。

------------------------------------------------------

static静态代码块 和 static 关键字

static静态代码块: 当一个类被加载的时候,首先加载静态代码块。一个类的静态代码块只能使用一次。

static 关键字:被 static 修饰的变量是全局变量,每个对象都可以使用同一个;

      static 修饰的方法可以用 类名.方法名调用,static 方法可以调用成员方法,成员方法不能调用 static 方法,static 方法只能使用 static 标记的全局变量。

--------------------------------------------------------

修饰符

  本类 同一个包 子类 其他包
public Y Y Y Y
protect Y Y Y  
default Y Y    
private Y      

--------------------------------------------------------

String 和 StringBuffer

String:不可变的字符串。

StringBuffer:字符串是可变的。

-------------------------------------------------------

数组

数组:同类型的数据存放在一起的组合,数组长度固定不可更改。

-------------------------------------------------------

集合

常用:list,set,map

list:有序排列可以重复

set:无序排列不可重复,只能一个null,(排序方式Hash表)

map:键值对组合,键不可重复,值可以重复,(Hash表排序)

--------------------------------------------------------

Thread 类 和 Runnable 接口

Runable 接口:Runnable 只提供一个方法 run()。

Thread 类:Thread 类继承 Runnable 接口。

线程开启:使用 对象.start()方法开启线程,线程开启后调用run()方法。

-------------------------------------------------------

synchronize 进程同步锁

进程同步 : 当 synchronize 标记一个方法或者代码块时,次方法或代码块在同一时间内只能有一个线程访问,只有当前线程释放锁后其他线程才能访问。

-------------------------------------------------------

yield() 和 join()

yield():暂停当前线程转而执行其他线程。

join():t.join()暂停当前线程转而执行 t 线程,当 t 结束后继续执行。

-------------------------------------------------------

wait() 和 notify() ,notifyAll() 和 interrupt()

wait():使当前线程转为等待状态,等待状态会释放进程同步锁,等待状态后可以被notify()或者 notifyAll()唤醒,唤醒后从等待出继续运行。

notify():随机唤醒一个同锁的等待进程。

notifyAll():随机唤醒所有同锁的等待进程。

interrupt():线程.interrupt() 将线程从 sleep(),wait(),join()状态转换成中断状态并抛出异常。

------------------------------------------------------

内部类

静态内部类:创建在类中的类,static 修饰,只能调用外围类的静态属性和方法。

成员内部类:创建在类中的类,不能使用 static修饰符。

匿名内部类:在方法中直接创建一个对象。

局部内部类:创建在方法体中的类,没有修饰符,只能访问 final 修饰的常量。

-----------------------------------------------------

时间: 2024-08-11 05:30:33

java基础知识点回顾的相关文章

java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)

 *java多线程--等待唤醒机制:经典的体现"生产者和消费者模型 *对于此模型,应该明确以下几点: *1.生产者仅仅在仓库未满的时候生产,仓库满了则停止生产. *2.消费者仅仅在有产品的时候才能消费,仓空则等待. *3.当消费者发现仓储没有产品可消费的时候,会唤醒等待生产者生产. *4.生产者在生产出可以消费的产品的时候,应该通知等待的消费者去消费. 下面先介绍个简单的生产者消费者例子:本例只适用于两个线程,一个线程生产,一个线程负责消费. 生产一个资源,就得消费一个资源. 代码如下: pub

java基础知识回顾之java Thread类学习(七)--java多线程通信等待唤醒机制(wait和notify,notifyAll)

1.wait和notify,notifyAll: wait和notify,notifyAll是Object类方法,因为等待和唤醒必须是同一个锁,不可以对不同锁中的线程进行唤醒,而锁可以是任意对象,所以可以被任意对象调用的方法,定义在Object基类中. wait()方法:对此对象调用wait方法导致本线程放弃对象锁,让线程处于冻结状态,进入等待线程的线程池当中.wait是指已经进入同步锁的线程,让自己暂时让出同步锁,以便使其他正在等待此锁的线程可以进入同步锁并运行,只有其它线程调用notify方

java基础知识回顾之java Thread类学习(六)--java多线程同步函数用的锁

1.验证同步函数使用的锁----普通方法使用的锁 思路:创建两个线程,同时操作同一个资源,还是用卖票的例子来验证.创建好两个线程t1,t2,t1线程走同步代码块操作tickets,t2,线程走同步函数封装的代码操作tickets,同步代码块中的锁我们可以指定.假设我们事先不知道同步函数用的是什么锁:如果在同步代码块中指定的某个锁(测试)和同步函数用的锁相同,就不会出现线程安全问题,如果锁不相同,就会发生线程安全问题. 看下面的代码:t1线程用的同步锁是obj,t2线程在操作同步函数的资源,假设不

java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上.如图所示: 1.管道输入流应该连接到管道输出流 ,输入流和输出流可以直接连接       2.使用多线程操作,结合线程进行操作.通常由某个线程从管道输入流中(PipedInputStream)对象读取.          并由其他线程将其写入到相应的端到输出流中.不能使用单线程

java基础知识回顾之java Thread类学习(五)--java多线程安全问题(锁)同步的前提

这里举个例子讲解,同步synchronized在什么地方加,以及同步的前提: * 1.必须要有两个以上的线程,才需要同步. * 2.必须是多个线程使用同一个锁. * 3.必须保证同步中只能有一个线程在运行,锁加在哪一块代码 那么我们要思考的地方有:1.知道我们写的哪些是多线程代码 2.明确共享数据 3.明确多线程运行的代码中哪些语句是操作共享数据的.. 4.要确保使用同一个锁. 下面的代码:需求:两个存户分别往银行存钱,每次村100块,分三次存完. class bank{ private int

java基础知识回顾之---java String final类普通方法

辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      *      * 1,获取:     * 1.1 获取字符串中字符的个数(长度).     *         int length();     * 1.2 取字符串中的某一个字符,其中的参数index指的是字符串中序数.字符串的序数从0开始到length()-1 .     *       

java基础知识回顾之---java String final类之intern方法

public class StringObjectDemo { /** * @param args */ public static void main(String[] args) { String hello = "Hello", lo = "lo"; System.out.print((hello == "Hello") + " ");//true System.out.print((Other.hello == hel

java基础知识回顾之关键字

其实java中的常用关键字并不多,总共加起来也没有多少个,具体见如下这张表: private,protect,public 在java中,在类,类的属性和累的方法前面加上一个修饰符来对其进行访问权限上的控制.除了使用private,protect,public之外, 还有一种是default情况,即使不加任何权限修饰符.关于这四中情况的权限差别见下表: 注意:default不是修饰符,他表示一种不加任何修饰符的情况. 这里,主要看一看static,instanceof,final关键字的含义和如

JAVA基础知识点总结(全集)

1.JAVA简介 1.1java体系结构:j2se,javaweb,j2ee 1.2java特点:平台无关(虚拟机),垃圾回收(使得java更加稳定) 1.3 JDK与JRE,JDK:java开发环境,JRE:java运行环境 1.4第一个java程序:HelloWorld,java的入口是main(public static void main(String[] args)) 1.5java程序的开发步骤:.java编译(javac)成.class运行(java).class文件 2.基本数据