随笔分类 -  Java

Java
摘要:1. Java堆中各代分布: 图1:Java堆中各代分布 Young:主要是用来存放新生的对象。 Old:主要存放应用程序中生命周期长的内存对象。 Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域. 它 阅读全文
posted @ 2018-01-19 14:41 夏嘻嘻嘻嘻嘻 阅读(173) 评论(0) 推荐(0) 编辑
摘要:java虚拟机在运行的时候会把内存分为不同的区域,每个区域都有其特定额用途。java虚拟机运行数据区如图所示 1、程序计数器 是一块较小的内存空间,是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳 阅读全文
posted @ 2018-01-19 14:28 夏嘻嘻嘻嘻嘻 阅读(210) 评论(0) 推荐(0) 编辑
摘要:一、currentThread()方法:可返回代码段正在被哪个线程调用的信息。 二、isAlive()方法:判断当前的线程是否处于活动状态。活动状态就是线程已经启动且尚未终止。线程处于正在运行或准备开始运行的状态,就认为线程是“存活”的。 三、sleep方法:在指定的毫秒数内让当前“正在执行的线程” 阅读全文
posted @ 2017-07-21 17:47 夏嘻嘻嘻嘻嘻 阅读(317) 评论(0) 推荐(0) 编辑
摘要:1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRI 阅读全文
posted @ 2017-06-20 15:23 夏嘻嘻嘻嘻嘻 阅读(615) 评论(0) 推荐(0) 编辑
摘要:线程的生命周期: 新建状态:用new语句创建的线程对象处于新建状态,此时它和其它的java对象一样,仅仅在堆中被分配了内存 就绪状态:当一个线程创建了以后,其他的线程调用了它的start()方法,该线程就进入了就绪状态。处于这个状态的线程位于可运行池中,等待获得CPU的使用权 运行状态:处于这个状态 阅读全文
posted @ 2017-06-20 15:22 夏嘻嘻嘻嘻嘻 阅读(175) 评论(0) 推荐(0) 编辑
摘要:先说一下Runnable和Callable的区别: 1、Callable规定的方法是call(),Runnable规定的方法是run(). 2、Callable的任务执行后可返回值,而Runnable的任务是不能返回值得 3、call方法可以抛出异常,run方法不可以 4、运行Callable任务可 阅读全文
posted @ 2017-06-12 10:02 夏嘻嘻嘻嘻嘻 阅读(437) 评论(0) 推荐(0) 编辑
摘要:1 import java.util.concurrent.Callable; 2 import java.util.concurrent.ExecutorService; 3 import java.util.concurrent.Executors; 4 import java.util.concurrent.Future; 5 6 /** 7 * Callable 和 F... 阅读全文
posted @ 2017-06-12 09:59 夏嘻嘻嘻嘻嘻 阅读(383) 评论(0) 推荐(0) 编辑
摘要:Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。前两种方式启动的线程没有返回值,启动后与主线程没有任何关系,主线程也不知道子线程是否执行结束;后一种方式线程有返回值,启动后主线程 阅读全文
posted @ 2017-06-12 09:47 夏嘻嘻嘻嘻嘻 阅读(306) 评论(0) 推荐(0) 编辑
摘要:为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。 典型的冲突有: 丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 脏读:当一个 阅读全文
posted @ 2017-06-08 11:09 夏嘻嘻嘻嘻嘻 阅读(267) 评论(0) 推荐(0) 编辑
摘要:锁(locking) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界 阅读全文
posted @ 2017-06-08 10:50 夏嘻嘻嘻嘻嘻 阅读(461) 评论(0) 推荐(0) 编辑
摘要:在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需 阅读全文
posted @ 2017-05-31 10:36 夏嘻嘻嘻嘻嘻 阅读(323) 评论(0) 推荐(0) 编辑
摘要:线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一 阅读全文
posted @ 2017-05-31 10:25 夏嘻嘻嘻嘻嘻 阅读(212) 评论(0) 推荐(0) 编辑
摘要:JSONObject jsonObj= JSONObject.fromObject(jsonStr); String value= jsonObj.getString(key); 阅读全文
posted @ 2017-03-08 16:22 夏嘻嘻嘻嘻嘻 阅读(22333) 评论(0) 推荐(0) 编辑
摘要:一、相关注解解读1. @Api用在类上,说明该类的作用@Api(value = "UserController", description = "用户相关api")2. @ApiOperation用在方法上,说明方法的作用@ApiOperation(value = "查找用户", notes = " 阅读全文
posted @ 2017-02-21 10:54 夏嘻嘻嘻嘻嘻 阅读(8052) 评论(0) 推荐(0) 编辑
摘要:如题:有List<String> list1和List<String> list2,两个集合各有上万个元素,怎样取出两个集合中不同的元素? 方法1:遍历两个集合: package com.czp.test; import java.util.ArrayList; import java.util.L 阅读全文
posted @ 2017-01-03 17:17 夏嘻嘻嘻嘻嘻 阅读(2627) 评论(0) 推荐(0) 编辑
摘要:1 private static List getMonthBetween(String minDate, String maxDate) throws ParseException { 2 ArrayList result = new ArrayList(); 3 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM")... 阅读全文
posted @ 2016-09-13 14:06 夏嘻嘻嘻嘻嘻 阅读(19876) 评论(0) 推荐(3) 编辑
摘要:一.Json对象与Json字符串的转化 1.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转换方式(Firefox,chrome,opera,safar 阅读全文
posted @ 2016-09-02 14:30 夏嘻嘻嘻嘻嘻 阅读(265117) 评论(0) 推荐(13) 编辑
摘要:io流的 四个基本类 java.io包中包含了流式I/O所需要的所有类。在java.io包中有四个基本类:InputStream、OutputStream及Reader、Writer类,它们分别处理字节流和字符流: 基本数据流的I/O 输入/输出 字节流 字符流 输入流 Inputstream Re 阅读全文
posted @ 2016-06-27 09:52 夏嘻嘻嘻嘻嘻 阅读(1653) 评论(1) 推荐(0) 编辑