自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(24)
  • 收藏
  • 关注

转载 Java进阶(11) - Java8+新特性

接口中的默认方法,接口终于可以有方法实现了,使用注解即可标识出默认方法。lambda表达式实现了函数式编程,通过注解可以声明一个函数式接口,该接口中只能有一个方法,这个方法正是使用lambda表达式时会调用到的接口。Option类实现了非空检验新的日期API各种api的更新,包括chm,hashmap的实现等Stream流概念,实现了集合类的流式访问,可以基于此使用map和reduce并...

2019-09-09 18:39:06 233

转载 Java进阶(10) - 网络编程

BIO、NIO、AIONIO vs IO之间的理念上面的区别(NIO将阻塞交给了后台线程执行)IO是面向流的,NIO是面向缓冲区的Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方;NIO则能前后移动流中的数据,因为是面向缓冲区的IO流是阻塞的,NIO流是不阻塞的Java IO的各种流是阻塞的。这意味着,当一个线程调用read() 或...

2019-09-09 18:38:43 122

转载 Java进阶(9) - 并发(JUC)

待补充~

2019-09-09 18:38:06 134

转载 Java进阶(8) - 并发(多线程锁类)

一共有3类锁 ,方法锁、对象锁、类锁。(方法锁也是对象锁的一种)一、对象锁对象锁public class object {private Lock lock = new ReentrantLock();//JavaSE1.5.新增了一个java.util.concurrent包来支持同步public void method(){synchronized(this){System.out.print...

2019-09-09 18:37:38 121

转载 Java进阶(7) - 并发(多线程基本概念)

一、中断interrupt方法只改变目标线程的中断状态(interrupt status),当线程处于 wait、sleep、join等状态时都在方法内部不断地检查中断状态的值,当调用interrupt会抛出InterruptedException异常。interrupt方法Thread实例方法: 必须由其它线程获取被调用线程的实例后,进行调用。实际上,只是改变了被调用线程的内部中断状态;Th...

2019-09-09 18:36:57 111

转载 Java进阶(6) - 并发(关键字)

并发的特性1、可见性a、 保证任何一个线程修改变量立即写入到主内存中(堆);b、 所有线程对该变量引用会强制立即失效,并且该线程必须去堆中获取最新的变量值。2、指令重排序代码的执行顺序 会在JVM中(编译器优化 指令级并行重排序 内存系统重排序 最终执行的指令序列)3、原子性同一时刻最多只有一个线程访问该段代码。Volatile -> 可见性、指令重排序Synchronied -&...

2019-09-09 18:36:31 135

转载 Java进阶(5) - 并发(JMM)

一、主存储器与工作存储器JMM 分为主存储器(main memory)和工作存储器(working memory)两种。主存储器(main memory):类的实例所存在的区域(堆),main memory为所有的线程所共享(栈)。工作存储器(working memory):每个线程各自独立所拥有的作业区,在working memory中,存有main memory中的部分拷贝,称之为工作拷贝...

2019-09-09 18:35:50 108

转载 Java进阶(2) - 特殊对象(Class类)

存在的意义位于java.lang包下,和java.lang.reflect包下的类共同支持java反射功能jvm在类加载时,在堆中为每个类生成一个Class对象,用于记录每个类的属性、方法等信息,同时每个对象生成时都有特殊的标记位来指向堆中的Class对象。获取的三种方式1 、Class.forName("全路径名")2 、类名.Class3、实例对象.getClass()常用方法列表1、...

2019-09-09 18:27:52 153

转载 Java进阶(1) - Object类

Object类9大方法是哪些1、Clone方法实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常Java里参数传递,除了8种基本类型是值传递。其他类对象都是引用传递。2、getClass方法final方法,获得运行时类型。3、toString方法该方法用得比较多,一般子类都有覆盖。4、finalize方法该方法...

2019-09-09 18:26:58 79

转载 Java基础 (15) - IO流

IO流也是Java中比较重要的一块,Java中主要有字节流,字符流,文件等。其中文件也是通过流的方式打开,读取和写入的。IO流的很多接口都使用了装饰者模式,即将原类型通过传入装饰类构造函数的方式,增强原类型,以此获得像带有缓冲区的字节流,或者将字节流封装成字符流等等,其中需要注意的是编码问题,后者打印出来的结果可能是乱码哦。IO流与网络编程息息相关,一个socket接入后,我们可以获取它的输入...

2019-09-06 17:10:44 66

转载 Java基础 (14) - 多线程

1.实现多线程 Thread、Runnable、Callable、ExecutorService四种方式Runnable和Callable的区别是1>Runnable是run() , Callable是call()。其中Runnable可以提交给Thread来包装下,Callable一般都是提交给ExecuteService和FutureTask来执行。2>Callable能返回值和抛...

2019-09-06 17:10:14 81

转载 Java基础(13) - Error与Exception

Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。Exception异常 表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程...

2019-09-06 17:09:35 233

转载 Java基础 (12) - 序列化

1、序列化是干什么的?内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。2、什么情况下序列化a、对象需要持久化 (硬盘or数据库) b、网络传输 (套接字orRMI)c、在进程间传递对象3、序列化ID的作用java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。反序列化时,JVM会把传来的字节流中的serial...

2019-09-06 17:08:51 63

转载 Java基础 (11) - 反射

能解决Java中编译分为静态编译和动态编译。静态编译:在编译时确定类型,绑定对象,即通过。动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,从而降低类之间的藕合性。能得到实现Java反射机制的类都位于java.lang.reflect包中:1、Class类:代表一个类2、Field类:类的属性(成员变量)3、Method类:类的方法4、Construc...

2019-09-06 17:08:15 63

转载 Java基础(10) - 内部类

存在意义1、内部类可以很好的实现隐藏一般的非内部类,是不允许有private与protected权限的,但内部类可以2、内部类拥有外部类所有元素的访问权限 ,private修饰也能访问。3、可实现多重继承 ,让多个内部类分别继承多个其他类,使外部类可以同时获取多个其他类的属性。4、可以避免修改接口而实现同一个类中两种同名方法的调用。(外部类继承,让内部类实现接口)参考:https://www...

2019-09-06 17:07:35 96

转载 Java基础(9) - 静态、代码块

关键字加载顺序 、类初始化 、方法区、进程存在作用:变量 -> 全局共享 (跨线程,但不支持跨进程)方法 -> 不用类实例就能直接使用,避免New的消耗。(为什么静态方法不能访问非静态变量)代码块 -> 静态块在类初始化就运行 ,初始化顺序 静态代码块 -> 普通代码块 -> 构造方法 -> 普通方法,代码块只会初始化一次导包 ...

2019-09-06 17:06:44 76

转载 Java基础(8) - 接口、抽象类

存在的意义接口 - 接口对维护和解耦代码有很很好的帮助 同时由于接口常用来约束对象的行为,可实现”多继承“。抽象类 - 抽象类对于代码的维护和重用有很好的帮助。参考:接口 - https://blog.csdn.net/googleoyyp/article/details/78912259抽象类 - https://blog.csdn.net/chenchaozzu/article/detai...

2019-09-06 17:06:06 80

转载 Java基础 (7) - 泛型

能解决1.集合中防止数据转换异常2.参数通用化 -“模板”适用于多种数据类型执行相同的代码泛型中的类型在使用时指定泛型归根到底就是“模版”优点使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。接受宽泛的数据类型泛型主要在集合类中使用,eg:List<String> list = new ArrayList<String>();String...

2019-09-06 17:05:03 56

转载 Java基础 (6) - 枚举

能解决1.类或方法强制使用者传入预设的值 2.性能相对常量更好 - (Android环境除外)使用办法public enum ColorEnum{WHITE("0x000001"),BLACK("0x000002"),GREEN("0x000003");private final String color;private ColorEnum(String color){this.color ...

2019-09-06 17:04:22 120

转载 Java基础 (5) - 集合

Java集合大致分为 List、Set、Queue和Map 四种体系, List代表有序、重复的集合;(ArrayList、LinkedList、Vector)Set代表无序、不可重复的集合; (HashSet、LInkedHashSet、TreeSet)Queue Java5增加,代表一种队列的集合 (priorityqueue)Map则代表具有映射关系的集合Collection接口1.Set...

2019-09-06 17:03:43 77

转载 Java基础(4) - 引用类型

1.强引用:虚拟机回收时,就算内存不足也不会回收。2.软引用:虚拟机回收时,当内存不足时才回收。(使用时需判断是否为空)适合操作频率不高,想避免OutOfMemory异常的发生。(Bitmap)3.弱引用:虚拟机回收时,只要发现有弱应用即回收。(使用时需判断是否为空)适合操作频率高,想应用有更好的性能。(handler)4.虚引用仅持有虚引用的对象,在任何时候都可能被GC;常用于跟踪对象被G...

2019-09-06 17:02:45 48

转载 Java基础 (3) - String/StringBuilder/Buffer StringFor

区别1.可变与不可变String —> private final char value[]; final 不可变的StringBuilder/Buffer —> char value[] 可变的String设计成不可变原因 -> 多个指引指向同一个内存空间,如任意指引修改,值将改变,其它引用也将改变。2.是否多线程安全String —> 安全 (不可变对象)Str...

2019-09-06 17:01:45 138

转载 Java基础 (2) - 基本数据类型及包装类

关键字位数、常量池、包装类(自动装拆箱)8种基本数据类型整数类型:byte,short,int,long浮点数类型:float,double字符类型:char布尔类型:boolean位数1、JVM规范中,boolean作为int处理,占4字节 ,boolean数组当做byte数组,占1个字节。2、byte类型是1byte也就是8位,可以表示的数字是-128到127,因为还有一个0,加起来一共是...

2019-09-06 17:00:35 123

转载 JAVA基础 (1) - 面向对象特性

1.抽象现实生活中的事物被抽象成对象,把具有相同属性和行为的对象被抽象成类,再从具有相同属性和行为的类中抽象出父类。(找出共同部分抽出来)2.封装隐藏对象的属性和实现细节,仅仅对外公开接口。3.继承子类和父类之间的继承关系,子类可以获取到父类的属性和方法。注:关于子类能否继承父类的私有方法?从语言角度上说:JDK官方文档明确说明子类不能继承父类的私有方法;但从内存角度来说,jvm在实例化...

2019-09-06 16:56:53 56

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除