java
文章平均质量分 73
小南儿
Java程序员
展开
-
Java8新特性——集合底层源码实现的改变
ArrayList 源码分析:jdk7:ArrayList list = new ArrayList();//初始化一个长度为10的Object[] elementDatasysout(list.size());//返回存储的元素的个数:0list.add(123);list.add(345);...当添加第11个元素时,需要扩容,默认扩容为原来的1.5倍。还需要将原有数组中...转载 2018-10-29 21:40:00 · 270 阅读 · 0 评论 -
Spring注解驱动开发——属性赋值
1、@Value赋值基本用法:测试:注意:使用*.properties配置文件,需要在配置类上再加上一个注解,指明配置文件的位置2、自动装配(@Autowired @Qualifier @Primary)@Autowired 这个注解就不用多说了,web应用的三层开发经常用到。@Autowired 会默认优先按照类型去容器中找对应的组件,如果找到多个相同...原创 2019-03-23 15:08:34 · 221 阅读 · 0 评论 -
自旋锁(非重入锁)、死锁、重入锁
1、重入锁 所谓的可重入锁,就是说当一个线程进入到同步代码时,然后再在这个代码块里面再去申请同一把锁,此时还能申请得到,这就是可重入锁。案例:2、自旋锁(非重入锁)所谓的自旋锁就是说:若当前线程执行某个方法已经获取了该锁,那么在方法中尝试再次获取锁时,就会获取不到被阻塞。示例:package com.xnn.thread.t6;import ja...原创 2019-03-17 15:46:36 · 321 阅读 · 0 评论 -
java中的各种数据类型在内存中存储的方式
1.Java是如何管理内存的java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC必须监控每一个对...转载 2017-08-16 14:20:30 · 380 阅读 · 0 评论 -
Quartz的配置与使用
什么是QuartzQuartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz是一个任务日程管理系统,一个在预先确定(被纳入日程)的时间到达时,负责执行(或...原创 2018-10-20 14:49:00 · 212 阅读 · 0 评论 -
Fork/join框架
Fork/join框架概述就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。Fork/Join 框架与传统线程池的区别采用 “工作窃取”模式(work-stealing):当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,然后再从一个随机线程的队列中偷一个并把它放在自己的队...原创 2018-10-24 16:44:00 · 127 阅读 · 0 评论 -
java8新特性之——lambda表达式的使用
lambda表达式简介个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码。Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda表达式的语法(记得要在jdk1.8及以...原创 2018-10-21 23:50:00 · 196 阅读 · 0 评论 -
Java8新特性——新一套时间API的使用
JDK 1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的。偏移性:Date中的年份是从1900开始的,而月份都从0开始。格式化:格式化只对Date有用,Calendar则不行。此外,它们也不是线程安全的;不能处理闰秒...原创 2018-10-25 12:20:00 · 93 阅读 · 0 评论 -
Java8新特性——Optional类的使用(有效的避免空指针异常)
OPtional类的使用概述到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。Optional实际上是个容器:它可以...原创 2018-10-25 16:27:00 · 1329 阅读 · 0 评论 -
Java8接口新特性
概述Java 8中,你可以为接口添加静态方法和默认方法。从技术角度来说,这是完全合法的,只是它看起来违反了接口作为一个抽象定义的理念。猜想设计初衷可能使为了兼容8以下的jdk Java8出来了个函数式接口,只要声明成函数式接口的接口都只能有一个抽象方法,为了便于扩展,赋予接口这么一个新特性静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。我们经常在相互一...原创 2018-10-25 17:09:00 · 100 阅读 · 0 评论