
java
kavito
这个作者很懒,什么都没留下…
展开
-
日期/时间相关API
日常的开发中,我们经常需要处理日期和时间的相关数据,可以看看下面的基本的用法。public class CalendarDemo { /* * 获取年月日时分秒 */ @Test public void test1(){ Calendar c=Calendar.getInstance(); System.out.println("年:"+c.get(Calendar.Y...原创 2018-11-30 18:04:10 · 599 阅读 · 0 评论 -
CountDownLatch
CountDownLatch是什么CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier(https://blog.youkuaiyun.com/kavito/article/details/81584580)、Semaphore、ConcurrentHashMap和BlockingQueue,它们都存在于java.util.concurrent包...原创 2019-05-09 18:07:05 · 221 阅读 · 0 评论 -
Semaphore信号量
Semaphore是一种在多线程环境下使用的设施,该设施负责协调各个线程,以保证它们能够正确、合理的使用公共资源的设施,也是操作系统中用于控制进程同步互斥的量。Semaphore是一种计数信号量,用于管理一组资源,内部是基于AQS的共享模式。它相当于给线程规定一个量从而控制允许活动的线程数。1.工作原理以一个停车场是运作为例。为了简单起见,假设停车场只有三个车位,一开始三个...原创 2019-05-09 20:23:10 · 466 阅读 · 0 评论 -
BeanUtils.copyProperties的用法
org.springframework.beans.BeanUtils.copyProperties(Object sourse,Object target),作用就是把两个对象中相同字段进行赋值。不一定是相同对象,只要两个对象中有相同的成员变量就可以赋值。/** * @author kavito * @date 2019/6/24 15:28 */public class Test...原创 2019-06-24 15:31:22 · 3352 阅读 · 0 评论 -
java知识点整理
平时遇到的零散的java知识点,将会在这篇文章记录整理。1、Math.round(),Math.ceil(),Math.floor()的区别1.1、Math.round():“round”的字面意思“附近、周围”——返回与它最近的一位整数,等于5向上取整。小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11...原创 2019-06-28 09:35:03 · 1457 阅读 · 0 评论 -
悲观锁与乐观锁
何谓悲观锁与乐观锁乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线...转载 2018-12-14 22:29:33 · 200 阅读 · 0 评论 -
文件复制
之前面试遇到过这个需求,复制文件夹及其子文件夹下的内容到指定文件夹.突然想起来,写个程序记录一下。public class CopyFile { /* * 复制文件夹及其子文件夹下的内容到另一个文件中 */ public static void main(String[] args) throws IOException { String url1 = "D:/测试/...原创 2018-10-26 22:12:10 · 284 阅读 · 0 评论 -
Java中的常量池(字符串常量池、class常量池和运行时常量池)
转自:https://blog.youkuaiyun.com/zm13007310400/article/details/775343491.字符串常量池(String Constant Pool):1.1:字符串常量池在Java内存区域的哪个位置?在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中; 在JDK7.0版本,字符串常量池被移到了堆中了。至于为什么移到堆...转载 2018-08-31 22:35:06 · 305 阅读 · 0 评论 -
深入理解Java线程池
线程是程序运行中一个非常重要的概念。通常情况下,程序从静态代码,到解析为机器码被加载入内存开始动态运行,就转变为一个进程。也可以说,程序是一个静态概念,程序运行起来后就变成了一个进程,进程是计算机分配CPU、内存等各种资源的基本单位。 我们平时在电脑中开启一些程序时,比如开启eclipse,idea等开发工具时,会发现程序启动较慢,这是因为进程运行所依赖的资源较多,故开启一个进...原创 2018-08-11 00:01:48 · 299 阅读 · 0 评论 -
java并发工具类-CyclicBarrier
CyclicBarrier,一个同步辅助类,在API中是这么介绍的:它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。通俗点讲就是:让一组线程到达一个屏障时被...转载 2018-08-11 11:11:01 · 208 阅读 · 0 评论 -
复制算法的两块Survivor空间
概述:在《深入理解Java虚拟机》这本书中,对复制算法有一段这样的介绍:现在的商业虚拟机大多采用复制算法来收集新生代。复制算法将内存分为一块较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor空间,当回收时,将Eden和Survivor中还存活的对象复制到另一块Survivor上,最后清理掉Eden和刚才使用的空间。复制算法原理 :Survi...转载 2018-08-30 17:59:40 · 271 阅读 · 0 评论 -
Java NIO:浅析I/O模型
在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Proactor)。 以下是本文的目录大纲:一.什么是同步?什么是异步?二....转载 2018-08-31 10:56:26 · 162 阅读 · 0 评论 -
String类和常量池
String类和常量池1、 String对象的两种创建方式:String str1 = "abcd";String str2 = new String("abcd");System.out.println(str1==str2);//false这两种不同的创建方法是有差别的,第一种方式是在常量池中拿对象,第二种方式是直接在堆内存空间创建一个新的对象。记住:只要使用new方...原创 2018-08-31 19:37:43 · 5056 阅读 · 1 评论 -
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? (下面内存图解:栈内存是先进后出的,画错了 ) 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变...原创 2018-05-25 19:35:55 · 14545 阅读 · 5 评论