JDK9新特性

JDK9新特性: 1.模块系统 2.JShell和Jlink 3.不可变集合类工厂方法 4.接口中的私有方法 5.一些改进的API 6.try-with-resources改进 7.HTTP2支持 8.平台日志API和服务 9.垃圾回收器 ...

2019-05-16 18:12:21

阅读数 4

评论数 0

Git常用命令总结

一、新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二、配置 Git的设置文件为.git...

2019-05-14 09:45:54

阅读数 13

评论数 0

java多线程什么时候释放锁

由于等待一个锁定线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不需要锁的时候及时释放锁是很重要的。在以下情况下,持有锁的线程会释放锁: 1、当前线程的同步方法、代码块执行结束的时候释放 2、当前线程在同步方法、同步代码块中遇到break 、 return 终于该代...

2019-05-12 20:52:47

阅读数 32

评论数 0

java线程的各种状态

java线程在运行的生命周期中可能处于六种不同的状态,在给定的某一个时刻,线程只能处于其中的一个状态。在程序运行中线程状态的具体含义:线程在自身的生命周期中并不是固定的处于某个状态,而是随着代码的不断执行在不同的状态之间进行切换。 (1)NEW:初始状态,线程被创建但是还没有调用start(...

2019-05-11 15:12:38

阅读数 27

评论数 0

java在多线程情况下如何初始化Class对象

java在多线程情况下,初始化一个类或接口的处理过程如下,大致分为5个过程: (1)通过在Class对象上同步获得对象的初始化锁,来控制类或接口的初始化,这个获取锁的线程会一直等待直到当前线程能获得这个初始化锁。当一个Class对象还没有初始化,这个初始化状态被标记为noInituali...

2019-05-07 21:07:23

阅读数 22

评论数 0

关于java内存模型的浅析

首先本篇介绍的是java内存模型而不是java的内存结构,这两个是不同的,很多人将这两个概念搞混。所以就先进行介绍一下java内存结构,这样可以和内存模型有一些区分: java内存结构 由Java虚拟机规范定义。描述的是Java程序执行过程中,由JVM管理的不同数据区域。各个...

2019-05-06 18:12:57

阅读数 33

评论数 0

java的双重检查锁定详解

双重检查锁定模式(也被称为"双重检查加锁优化","锁暗示"(Lock hint)) 是一种软件设计模式用来减少并发系统中竞争和同步的开销。有时候会在单例模式里遇到这个双重检查锁定,这个技术是单例模式的一种具体的实现,通过它来进行单例模式里的延迟初始化,保证在...

2019-05-04 20:23:02

阅读数 34

评论数 0

Java版本:JDK8的十大新特性介绍

JDK8新特性: 1.Lambda表达式 2.新的日期API 3.引入Optional 4.使用Base64 5.接口的默认方法和静态方法 6.新增方法引用格式 7.新增Stream类 8.注解相关的改变 9.支持并行(parallel)数组 ...

2019-04-30 21:11:28

阅读数 46

评论数 0

java的Object里wait()实现原理

在进行wait()之前,就代表着需要争夺Synchorized,而Synchronized代码块通过javap生成的字节码中包含monitorenter和monitorexit两个指令。在进如锁的时候会执行monitorenter,执行monitorenter指令可以获取对象的monitor。同时...

2019-04-22 21:10:33

阅读数 57

评论数 0

详解Android系统启动是如何启动的

首先对Android的系统启动流程进行一个介绍,这个启动流程是贯穿Android四层架构的过程: 一、启动电源以及系统启动:引导芯片代码从固化在ROM上的预定义地方开始执行,加载引导程序BootLoader到RAM然后执行 二、引导程序BootLoader:是在Android系统启动前...

2019-04-21 20:09:33

阅读数 35

评论数 0

java的集合框架浅析:包含的基本接口以及常用类

java集合的根本是Iterator和Collection两个接口。Collection本身代表了集合,拥有最基本的方法:添加、删除、返回个数、清空集合等。而Iterator接口是Collection的父接口主要用来定义遍历集合的规则,被称作迭代器,里面有两个重要方法next()和hashnext...

2019-04-14 20:28:53

阅读数 31

评论数 2

Android五层架构

之前写过一篇详细的Android四层架构,但是最近发现Android的架构变为了五层,所以在之前的基础上简单介绍一下五层架构。 1.应用层:应用层为系统对用户所提供的应用程序,负责与用户进行直接交互。 2.framework应用框架层:向应用开发层开发者提供了统一开发的api,这一层是由jav...

2019-04-10 12:42:15

阅读数 29

评论数 0

Android开发中的dp、px、dpi、sp区别和联系

px :像素,代表屏幕上的像素点。 dp :一个基于屏幕密度的抽象单位,如果一个160dpi的屏幕即标准屏幕,那么1dp=1px。长度宽度的数值要使用dp作为单位放入dimens.xml文件中,当dp不能作为适配单位时,就需要使用px。 dip :等同于dp。 dpi :一英寸长的直线上...

2019-04-02 20:25:14

阅读数 16

评论数 0

HashMap、Hashtable以及ConcurrentHashMap的区别及原理

HashTable产生于JDK 1.1,HashMap产生于JDK 1.2,主要的区别有:1.线程安全2.处理速度3.使用迭代器不同4.输入参数不同5.扩充容量的大小方式不同6.计算hash以及index的方式不同。 1.线程安全之间的区别 HashMap是非synchronized的...

2019-03-10 12:10:24

阅读数 78

评论数 1

编译原理:词法分析

    在词法分析的过程中还有一个过称是不能少的,就是在分析的时候一次读入多少代码。编译一个程序的时候,往往需要进行大量的字符串读入。前人做了比较多的优化,其中一项就是采用来个交替读入的缓冲区。每个缓冲区大概能有4096的字节,读一句话是足够的。读入程序中维护了两个指针:分别是lexemeBegi...

2019-02-02 00:06:59

阅读数 51

评论数 0

java8的流以及流和集合的区别

      集合是一种内存中的数据结构,包含数据结构中目前所有的值,也就是说集合中的值都要先计算好才能够放入集合中,但是流则不同,流是概念上固定的数据结构其元素是按需计算的不能添加或者删除元素,只有在需要的时候才将需要的流计算出来。集合需要提前将值全部准备好而流则是将值准备一部分。     ...

2019-01-18 17:42:09

阅读数 132

评论数 0

关于java内部类为什么能够访问外部类属性详解

    首先解释一下什么是内部类,内部类是定义在一个类内部的类。分为两种情况:一种是被static关键字修饰的, 叫做静态内部类, 另一种是不被static关键字修饰的, 即是普通内部类。 在下文中所提到的内部类都是指这种不被static关键字修饰的普通内部类。 静态内部类虽然也定义在外部类的里面...

2018-12-24 18:38:34

阅读数 88

评论数 0

HTML中的标签对照表

<!--...--> 定义注释 <!DOCTYPE> 定义文档类型 <a>...

2018-12-24 11:02:24

阅读数 76

评论数 0

使用IDEA创建java ee项目

 

2018-12-22 11:39:50

阅读数 139

评论数 1

java的协变性、逆变性、不变性

    先看看官方的解释:协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型。协变和逆变是指宽类型和窄类型在某种情况下(如参数、泛 型、返回值)替换或交换的特性。       简单地说A和...

2018-12-14 15:09:53

阅读数 71

评论数 0

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