Hello World

随笔分类 -  Java

摘要:1. Lambda表达式 Lambda表达式是jdk1.8里面的一个重要的更新,这意味着java也开始承认了函数式编程,并且尝试引入其中。 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 2. 函数式接口 “函数式接口”是指仅仅只包含一个抽象方法的接口,每一个该 阅读全文
posted @ 2018-12-27 11:26 小小忧愁米粒大 阅读(189) 评论(0) 推荐(0)
摘要:结果: 每次先打印 m2 阅读全文
posted @ 2018-12-24 22:21 小小忧愁米粒大 阅读(380) 评论(0) 推荐(0)
摘要:1. 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容 2. 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容 阅读全文
posted @ 2018-12-21 15:02 小小忧愁米粒大 阅读(243) 评论(0) 推荐(0)
摘要:1. 资源文件 2. 加载文件 3. 加载的文件位置 4. Linux下的异常问题 读取jar包中的文件的情况下 4.1 getResource URL url = LoadCacheFile.class.getClassLoader().getResource(filepath)..getFile 阅读全文
posted @ 2018-12-14 15:28 小小忧愁米粒大 阅读(14780) 评论(0) 推荐(1)
摘要:interface的default方法和static方法 接口中可以定义static方法,可通过接口名称.方法名()调用,实现类不能继承static方法; 接口中可以定义default方法,default修饰的方法有方法体,表示这个方法的默认实现,子类可以直接调用,可以选择重写或者不重写; 当实现类 阅读全文
posted @ 2018-12-12 21:13 小小忧愁米粒大 阅读(4724) 评论(0) 推荐(3)
摘要:由普通的类来实现接口,必须将接口所有抽象方法重写 由抽象类来实现接口,则接口的方法可根据需要选择是否重写。 继承实现接口的抽象类时,子类必须重写抽象类未实现的方法。 接口类: 抽象类: 继承抽象类的子类; PS:基础太差了,今天才知道 阅读全文
posted @ 2018-12-05 20:19 小小忧愁米粒大 阅读(1319) 评论(0) 推荐(1)
摘要:1. 重载与重写 1.1 Java虚拟机 虚拟机识别方法时主要根据类名,方法名和方法描述符(参数类型和返回值类型). 如果出现类名,方法名和方法描述符相同的方法,Java虚拟机在类加载的验证阶段报错. 1.2 Java语言 在同一个类中,方法名称相同,参数类型不同的方法称之为重载.(返回值类型不影响 阅读全文
posted @ 2018-11-19 12:51 小小忧愁米粒大 阅读(319) 评论(0) 推荐(0)
摘要:【参考文章】:面试必备之乐观锁与悲观锁 1. 悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。 传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 Java中 阅读全文
posted @ 2018-10-21 13:39 小小忧愁米粒大 阅读(675) 评论(0) 推荐(0)
摘要:1. 结构概述 1.1 整体结构 1.2 分层描述 1.2.1 Executor(顶级接口) 定义执行任务的方法; 执行已提交的 Runnable 任务的对象。此接口提供一种将任务提交与每个任务将如何运行的机制(包括线程使用的细节、调度等)分离开来的方法。通常使用 Executor 而不是显式地创建 阅读全文
posted @ 2018-10-16 15:08 小小忧愁米粒大 阅读(174) 评论(0) 推荐(0)
摘要:一. IO 传统的IO是同步阻塞模式,数据的读取与写入会阻塞在一个线程内等待其完成。 主要面向字节流编程。(流是单向的) 二. NIO NIO支持同步非阻塞模式,在进行IO调用后,然后去 轮询调用结果。调用返回期间可以进行其他操作。 主要面向缓冲区编程。(管道是双向的) 一般是将多个channel( 阅读全文
posted @ 2018-10-15 16:29 小小忧愁米粒大 阅读(167) 评论(0) 推荐(0)
摘要:1. 概述 JDK1.6版本花费了大量精力去实现各种锁优化,如适应性自旋,锁消除,锁粗化,轻量级锁,偏向锁等,这些技术都是为了在线程期间更高效的共享数据,以及解决竞争问题。 2. 自旋锁与自适应自旋 传统的互斥锁对性能最大的影响是阻塞的实现,线程的挂起和恢复需要转入内核态中完成,相当影响效率。 多线 阅读全文
posted @ 2018-09-20 15:03 小小忧愁米粒大 阅读(1008) 评论(0) 推荐(0)
摘要:1.异常简介 Java把异常作为一种类,当做对象来处理。所有异常类的基类是Throwable类,两大子类分别是Error和Exception。 系统错误由Java虚拟机抛出,用Error类表示。Error类描述的是内部系统错误,例如Java虚拟机崩溃。这种情况仅凭程序自身是无法处理的,在程序中也不会 阅读全文
posted @ 2018-09-20 09:20 小小忧愁米粒大 阅读(413) 评论(0) 推荐(0)
摘要:1. 概述 虚拟机把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,这个动作的代码模块称为类加载器。 2. 类与类加载器 对于任意一个类,都需要加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性。 比较两个是否相等只有在同一个类加 阅读全文
posted @ 2018-09-08 18:48 小小忧愁米粒大 阅读(155) 评论(0) 推荐(0)
摘要:1. 概述 一个.java文件编译为.class文件后才可以被加载到虚拟机中运行和使用. 虚拟机把描述类的.class文件加载到内存, 并对class文件进行验证、准备、解析和初始化后, 最终形成可以被虚拟机直接使用的Java类型, 这就是虚拟机的类加载机制. 2. 类加载的时机 类从加载到虚拟机内 阅读全文
posted @ 2018-09-08 14:21 小小忧愁米粒大 阅读(169) 评论(0) 推荐(0)
摘要:用法: javap 参数 class文件路径 其中, 可能的选项包括: -help --help -? 输出此用法消息 -version 版本信息 -v -verbose 输出附加信息 -l 输出行号和本地变量表 -public 仅显示公共类和成员 -protected 显示受保护的/公共类和成员 阅读全文
posted @ 2018-08-22 16:41 小小忧愁米粒大 阅读(310) 评论(0) 推荐(0)
摘要:1. 标记—清除(Mark-Sweep)算法 1. 标记—清除(Mark-Sweep)算法 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 1.1 定义 最基础的算法,包括标记和清除两部分。 首先把需要回收的对象进行标记,标记完成后进行回收。 阅读全文
posted @ 2018-08-21 10:32 小小忧愁米粒大 阅读(146) 评论(0) 推荐(0)
摘要:1. 判断对象是否可以进行回收 1.1 引用计数算法 定义 : 为对象添加一个引用计数器, 每当有一个地方引用它,计数器值就加一, 当引用失效时, 计数器值就减一. 优点 : 实现简单, 效率高 缺点 : 很难解决对象之间相互循环引用的问题 1.2 可达性分析算法 基本思想 : 通过一系列称为"GC 阅读全文
posted @ 2018-08-21 10:26 小小忧愁米粒大 阅读(188) 评论(0) 推荐(0)
摘要:1.对象的创建 1.对象的创建 1.1 当虚拟机遇到一条new指令时 a.判断该指令参数能否在常量池定位到一个类的符号引用; b.符号引用代表的类是否已被加载 解析和初始化过。如果没有则执行类加载。 c.内存分配,对象所需的内存大小在类加载后就完全确定; 根据堆中的内存是否为规整的可分为两种分配方式 阅读全文
posted @ 2018-08-21 09:43 小小忧愁米粒大 阅读(195) 评论(0) 推荐(0)
摘要:1. Java内存结构 ​ 1. 1程序计数器(线程私有) 当前线程的所执行字节码的行号指示器, 字节码解释器工作时通过改变计数器的值选择下一条需要执行的字节码指令。 java虚拟机的多线程通过轮流切换分配处理器(对于多核处理器来说是一个内核)执行时间来实现,一个时刻,一个处理器只会执行一条线程。 阅读全文
posted @ 2018-08-20 19:45 小小忧愁米粒大 阅读(371) 评论(0) 推荐(0)
摘要:private static final Object PRESENT = new Object(); // 使用 HashMap 实现 public HashSet() { map = new HashMap(); } // value 为 一个常量的Object public boolean add(E e) { ... 阅读全文
posted @ 2018-08-20 14:46 小小忧愁米粒大 阅读(134) 评论(0) 推荐(0)

瞅啥瞅,好好看书