javaSE学习笔记
文章平均质量分 79
Dyson~
小小黑
展开
-
java学习笔记(三)--(对象编程-类与方法下)(代码块&继承&覆写)
***重要***代码块 定义:使用{}定义的一段代码 根据代码块出现的位置以及关键字不同,分为以下四类代码块 普通代码块 定义在方法中代码块,了解即可(作用域不同) 构造块(***重要***) 定义在类中的代码块(不加任何修饰符) 当有对象产生时,构造块优先于构造方法执行,产生...原创 2018-10-17 13:58:22 · 211 阅读 · 0 评论 -
java学习笔记(十)-- java新特性 (枚举 & 注解 & 接口定义加强 & Lambda表达式)
枚举 (enum)高级的多例模式java中枚举使用enum关键字定义枚举枚举就是一种多例设计模式enmu Color{ RED,BLUE,GREEN; }enum Color{ RED,BULE,GREEN;}public class Test { public static void main(String[] args) { ...原创 2018-11-06 16:06:47 · 214 阅读 · 0 评论 -
java学习笔记(九)-- java新特性 ( 可变参数 & 泛型 & 静态导入 & 类型擦除 )
JDK1.5新特性 方法的可变参数 设计一个方法,可以接收任意个数的整数,并返回他们的相加结果 早期实现方式:public class Test { public static void main(String[] args) { System.out.println(add(new int[]{1,2,3}...原创 2018-11-05 15:59:31 · 223 阅读 · 0 评论 -
java学习笔记(十一)-- 多线程(线程的基本概念 & 多线程的实现 & 多线程常用操作方法) **** 重要 ****
一 线程和进程概念及其区别进程:OS中一个程序的执行周期线程:进程中的一个任务,一个进程可以包含n个线程进程:操作系统中一个程序的执行周期为一个进程进程线程区别1.每个进程拥有自己的一整套变量,是操作系统中资源分配的最小单位。线程依托于进程存在,多个线程共享进程资源,OS中任务调度的基本单位2.启动,撤销一个进程的开销要比启动,撤销一个线程大的多(轻量级进程)3.没...原创 2018-11-13 21:13:18 · 217 阅读 · 0 评论 -
思维导图 --- 继承,封装,多态
思维导图 — 继承,封装,多态传送门: 继承、封装、多态.原创 2018-11-15 15:12:28 · 1149 阅读 · 0 评论 -
java学习笔记(十二)-- 线程同步与死锁
一 线程的同步 ***************同步问题:每一个线程对象轮番抢占共享资源带来的问题首先看一段代码:class MyThread implements Runnable{ private int ticket=10; @Override public void run() { while (this.ticket>0){...原创 2018-11-15 10:53:06 · 170 阅读 · 0 评论 -
java中的CAS操作以及锁机制详解
关于CAS操作CAS:Compare And Swap -- 乐观锁策略CAS(无锁操作):使用CAS叫做比较交换来判断是否出现冲突,出现冲突就重试当前操作直到不冲突为止。悲观锁(JDK1.6之前的内建锁):假设每一次执行同步代码块均会产生冲突,所以当线程获取锁成功,会阻塞其他尝试获取该锁的线程。乐观锁(Lock机制):假设所有线程访问共享资源时不会出现冲突,既然不会出现冲突...原创 2018-11-17 17:00:06 · 8685 阅读 · 7 评论 -
生产-消费者模型
介绍生产消费者模型中所要用到的几个方法:wait() 方法public final void wait()throws InterruptedException;当调用wait()方法后,线程会立刻停止,并将该线程从锁对象的同步队列提取到等待队列(WAIT)中,直到下次被notify()方法唤醒,或者被中断为止。 wait()方法只能在同步代码块或同步方法中使用,必须为synchro...原创 2018-11-20 12:33:59 · 215 阅读 · 0 评论 -
深入理解AbstractQueuedSynchronizer(AQS)
AQS详解在同步组件中,AQS是最核心部分,同步组件的实现依赖AQS提供的模板方法来实现同步组件语义。AQS实现了对同步状态的管理,以及对阻塞线程进行排队、等待通知等等底层实现。AQS核心组成:同步队列、独占锁的获取与释放、共享锁的获取与释放、可中断锁、超时锁。这一系列功能的实现依赖于AQ...原创 2018-11-26 21:21:01 · 237 阅读 · 0 评论 -
java学习笔记(八)-- 异常
异常体系图Error:描述Java运行时内部错误与资源耗尽错误(OOM,StackOverflow)应用程序不抛出此类异常。这种内部错误一旦出现,除了告知用户并使用安全终止之外,再无能为力。 Exception(程序本身错误):Java应用程序抛出异常。 IOException:程序本身没有问题,由于IO处理导致的程序出错。 RuntimeExcpetion:运行时异常关于受查异常...原创 2018-11-03 19:11:42 · 196 阅读 · 0 评论 -
javaSE三个特殊的类 -- String类&String类面试题&StringBuffer类
String类String类 String的两种实例化方式 直接赋值(用的最多) String str=“Hello”; 传统方法,实例化对象 String str=new String("Hello"); 字符串相等比较 str.e...原创 2018-10-27 20:55:09 · 282 阅读 · 0 评论 -
javaSE三个特殊的类 -- 包装类
包装类--包装类的存在可以使Object接受一切 包装类就是将基本数据类型封装到类中 范例:class IntDemo{ private int num; public IntDemo(int num){ this.num=num; } public int intValue(){ return num; }...原创 2018-10-30 17:54:15 · 225 阅读 · 0 评论 -
java学习笔记(二)--(对象编程-类与方法上)
面向过程-编程范式-c-行为面向对象-能进行现实生活的抽象面向接口编程面向切面编程 - AOP函数式编程范式 -Scala,Koltin//lamdba表达式()-> { }面向对象三大特征:a.封装 将客观事物封装为抽象的类,并且类可以把自己的数据和方法只让可信的类或对象操作,对不可信的进行信息隐藏。内部操作对不可信外部而言不可见(保护性...原创 2018-10-13 18:13:55 · 383 阅读 · 0 评论 -
java学习笔记(四)--(对象编程-类与方法下)(super关键字 & final关键字 & 多态性 & 实例方法与静态方法之间的关系 & 关于强制类型转化)***重要***
super关键字super表示调用父类方法 调用父类构造方法 super(参数列表) 当在子类中调用父类无参构造时,super(可写可不写) 当子类调用父类有参构造时,super(参数列表)必须要写,告知编译器调用的是哪个父类有参构造 ****** super与this在构造方法中不能同时存在,即子类不存在构造方法的互相调用 super调用父类普通方法...原创 2018-10-20 22:47:03 · 149 阅读 · 0 评论 -
java学习笔记(五)--(对象编程-类与方法下)(内部类 & 静态内部类使用形参为何要是final)***重要***
内部类(可以使用内部类来实现多继承)定义:在一个类中进行其他机构的嵌套内部类的简单定义:class Outer{ private String msg="Hello world!"; //定义一个内部类 class Inner{ //定义一个普通方法 public void print(){ //调用msg...原创 2018-10-20 23:02:07 · 209 阅读 · 0 评论 -
java学习笔记(一)--(数据类型与运算符)&(程序逻辑控制与方法定义)&(数组的定义与使用)
1 .Java源文件:*.java,保存原始java代码编译过程:javac 要编译的源文件->.class文件(二进制文件).给JVM阅读的解释过程:java主类名向主方法传递多个参数java启动的主类名 参数1 + 空格 + 参数2 ...编译过程支持中文:javac -encoding UTF-8 主类名.java2..标识符与关键字2 .1 java注释...原创 2018-10-13 17:58:08 · 341 阅读 · 0 评论 -
java学习笔记(六)-- (抽象类与接口上)(抽象类&模板设计模式)
抽象类的定义和使用抽象类的定义:抽象类只是比普通方法多了一些抽象方法而已。 抽象方法:只声明而未实现的方法(没有方法体),抽象方法所在的类也一定要使用abstract来定义只声明而未实现的方法不一定为抽象方法,也可能为本地方法(调用c/c++库函数)抽象类的使用原则 1.所有抽象类必须有子类(final(没有子类)与abstract不能同时出现,矛盾) ...原创 2018-10-21 19:38:57 · 304 阅读 · 0 评论 -
java设计模式--模板设计模式
模板方法仅仅使用了Java的继承机制,但它是应用非常广泛的模式,抽象类的实际应用模板方法定义了一个算法的步骤,并允许子类为一个或者多个步骤提供具体实现。模板(模板方法)设计模式:基于抽象类核心在一个方法定义一个算法的骨架,而将一些步骤延迟到子类中。模板模式可以使得子类在不改变算法的前提下,重新定义算法中的某些步骤。注意:为了防止恶意操作,一般模板方法都加上final关键字, 不允许...原创 2018-10-23 19:39:17 · 195 阅读 · 0 评论 -
java设计模式--工厂设计模式(工厂类)
工厂设计模式(工厂,代理 ***,单例):将客户端的new操作解耦到第三方(工厂类)OCP(开闭原则) 简单工厂设计模式(应用场景:产品个数小,没有家族) 1. 抽象产品类(接口) 2. 多个具体产品类 - MacBookPro,SurfaceBooK 3. 一个工厂(new 操作在此工厂中进行)-- 客户端通过工厂类获取具体实例。...原创 2018-10-23 21:32:29 · 318 阅读 · 0 评论 -
java学习笔记(七)--(抽象类与接口下)(接口的定义与使用)
接口的定义与使用 接口优先原则:在一个操作即可以使用抽象类又可以使用接口的时候,优先考虑使用接口。 接口的定义(JDK8以前):接口就是抽象方法与全局常量的集合(纯粹版的抽象类),interfance关键字定义接口 interface IMessage{ //全局常量 public static final String MSG ="I am a biter"...原创 2018-10-24 13:30:59 · 430 阅读 · 0 评论 -
javaSE三个特殊的类 -- Object类
Object类(RealFather) -- 最高参数统一化(所有类都可以向上转型成Object类)Object类是JDK默认提供的一个类,Java中除了Object类,所有类都存在继承关系,默认会继承Object父类 toString()-- 取得对象信息 *** 重要 *** 系统输出默认调用对象的toString()方法,输出类名以及对象地址 ...原创 2018-10-30 17:49:03 · 143 阅读 · 0 评论 -
可中断获取锁与超时等待获取锁源码分析
可中断式获取锁可响应中断式锁可调用方法lock.lockInterruptibly();该方法的底层会调用AQS的acqireInterruptibly方法;acquireInterruptibly()方法:public final void acquireInterruptibly(int arg) throws InterruptedException { ...原创 2018-11-30 17:11:01 · 1028 阅读 · 0 评论