随笔分类 - Java
摘要:出处:http://www.importnew.com/26850.html 正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。 本文涉及到的知识点:thread.join(), object.wait(), obje
阅读全文
摘要:Json是一种轻量级的数据交换格式,采用一种“键:值”对的文本格式来存储和表示数据,在系统交换数据过程中常常被使用,是一种理想的数据交换语言。在使用Java做Web开发时,不可避免的会遇到Json的使用。下面我们就简单讲一下Json的使用以及fastjson.jar包的使用。 一:JSON形式与语法
阅读全文
摘要:一: 理解根目录 这里的classpath怎么理解呢,其实指的就是根目录,关于根目录,需要了解: (1): src不是classpath, WEB-INF/classes,lib才是classpath,WEB-INF/ 是资源目录, 客户端不能直接访问。 (2): WEB-INF/classes目录
阅读全文
摘要:输出: 当前线程:A: 98 当前线程:A: 25 当前线程:B: 28 当前线程:B: 27 其中: 98, 25 这两个值都会放到自己所属的线程对线A当中 28, 27这两个值都会放到自己所属的线程对线A当中 一、对ThreadLocal理解 ThreadLocal提供一个方便的方式,可以根据不
阅读全文
摘要:分一下几点讨论: 为什么要克隆? 如何实现克隆 浅克隆和深克隆 解决多层克隆问题 总结 一:为什么要克隆? 大家先思考一个问题,为什么需要克隆对象?直接new一个对象不行吗? 答案是:克隆的对象可能包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当
阅读全文
摘要:可直接看这篇文章即可:http://www.importnew.com/26613.html java异常类图 非检查异常(unckecked exception):Error 和 RuntimeException 以及他们的子类。javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异
阅读全文
摘要:PropertyChangeSupport 类实现的监听器功能 ,它是java jdk自带的一个类,用于监听某个对象属性的改变来触发相应信息,具体看代码介绍 打印结果: 事件源 发生变化,请做相应处理!
阅读全文
摘要:来源:https://blog.csdn.net/A_zhenzhen/article/details/77917991?locationNum=8&fps=1 https://blog.csdn.net/hxpjava1/article/details/55189077 关于Java 内存模型这块
阅读全文
摘要:线程对象 每一个线程都是和类Thread的实例相关联的。在Java中,有两种基本的使用Thread对象的方式,可用来创建并发性程序。 1.在应用程序需要发起异步任务的时候,只要生成一个Thread对象即可(继承Thread类和实现runnable接口),这样可以直接控制线程的创建并对其进行管理。 2
阅读全文
摘要:volatile: [ˈvɑlətl] 单词含义:易变的,不稳定的; (液体或油)易挥发的; 爆炸性的; 快活的,轻快的; volatile在多线程并发中用途非常广,原因是它有两个特性: 基础概念:Java 内存模型中的可见性、原子性和有序性。 可见性: 可见性是一种复杂的属性,因为可见性中的错误总
阅读全文
摘要:1:基础概念 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
阅读全文
摘要:(1):线程池存在哪些状态,这些状态之间是如何进行切换的呢? (2):线程池的种类有哪些? (3):创建线程池需要哪些参数,这些参数的具体含义是什么? (4):将任务添加到线程池之后运行流程? (5):线程池是怎么做到重用线程的呢? (6):线程池的关闭 首先回答第一个问题:线程池存在哪些状态; 查
阅读全文
摘要:原文地址:http://blog.csdn.net/ghsau/article/details/16890151 实现原理:用一个数组来存储元素,但是这个数组存储的不是基本数据类型。HashMap实现巧妙的地方就在这里,数组存储的元素是一个Entry类,这个类有三个数据域,key、value(键值对
阅读全文
摘要:一:Serializable 1、持久化的简单介绍: “持久化”意味着对象的“生存时间”并不取决于程序是否正在执行——它存在或“生存”于程序的每一次调用之间。通过序列化一个对象,将其写入磁盘,以后在程序再次调用时重新恢复那个对象,就能圆满实现一种“持久”效果。 2、什么情况下需要序列化 a)当你想把
阅读全文
摘要:遍历HashMap的方法有多种,比如通过获取map的keySet, entrySet, iterator之后,都可以实现遍历,然而如果在遍历过程中对map进行读取之外的操作则需要注意使用的遍历方式和操作方法。 上面代码的输出结果为 通过上面的输出可以发现第一个偶数key元素已经被成功remove,异
阅读全文
摘要:Java的控制循环结构中是没有关键字goto的,这种做法有它的好处,它提高了程序流程控制的可读性,但是也有不好的地方,它降低了程序流程控制的灵活性,所以说,“上帝是公平的”。所以,Java为了弥补这方面的不足,Java提供了break和continue的标签用法。Java中的标签就是一个紧跟着“:”
阅读全文
摘要:1:遍历List 同时 remove 元素,出现java.util.ConcurrentModificationException错误 API中此异常的解释:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 原因: Iterator 是工作在一个独立的线程中,并且拥有一个 mutex 锁
阅读全文
摘要:一:各种Date之间的转换方法 二:MySQL数据库中的Date,DateTime,TimeStamp和Time类型 DATETIME类型用在你需要同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-0
阅读全文
摘要:以上是jdk1.7的描述,结论如下: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长; ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList
阅读全文
摘要:java数组的拷贝四种方法:for、clone、System.arraycopy、Arrays.copyof 先看看System.arraycopy()的声明: src - 源数组。 srcPos - 源数组中的起始位置。 dest - 目标数组。 destPos - 目标数据中的起始位置。 len
阅读全文