Java
文章平均质量分 67
凌晨i
这个作者很懒,什么都没留下…
展开
-
记一次synchronized锁字符串引发的坑兼再谈Java字符串
问题描述业务有一个需求,我把问题描述一下:通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间。并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKIE,发现COOKIE超过失效时间,则调用脚本访问网站N获取一次数据。为了防止多线程取到同一个IP,同时发现该IP对应的COOKIE失效,同时去调用脚本更新COOKIE,针对IP加了锁。为了保证锁的全转载 2017-04-18 13:04:42 · 474 阅读 · 0 评论 -
Java8 日期/时间(Date Time)API
为什么我们需要新的Java日期/时间API?在开始研究Java 8日期/时间API之前,让我们先来看一下为什么我们需要这样一个新的API。在Java中,现有的与日期和时间相关的类存在诸多问题,其中有:1、Java的日期/时间类的定义并不一致,在java.util和java.sql的包中都有日期类,此外用于格式化和解析的类在java.text包中定义。2、java.util.Date同时包含日...转载 2018-12-20 19:18:14 · 261 阅读 · 0 评论 -
增强for循环(for each)的实现原理
在JAVA中,遍历集合和数组一般有以下三种形式:for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ",");}Iterator iterator = list.iterator();while (iterator.hasNext()) { System.out.print(i...转载 2018-10-23 14:01:51 · 1156 阅读 · 1 评论 -
Java中的fail-fast机制
遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式:1.通过增强的for循环删除符合条件的多个元素2.通过增强的for循环删除符合条件的一个元素3.通过普通的for删除删除符合条件的多个元素4.通过Iterator进行遍历删除符合条件的多个元素/** * 使用增强的for循环 * 在循环过程中从List中删除非...转载 2018-10-23 11:33:52 · 203 阅读 · 0 评论 -
equals()和hashcode()
所有Java类的父类——java.lang.Object中定义了两个重要的方法:public boolean equals(Object obj)public int hashCode()一个常犯的错误import java.util.HashMap;public class Apple { private String color; public Apple(St...转载 2018-10-22 15:42:18 · 88 阅读 · 0 评论 -
JSONObject put,accumulate,element的区别
public Object put (Object key, Object value) 将value映射到key下。如果此JSONObject对象之前存在一个value在这个key下,当前的value会替换掉之前的value Associates the specified value with the specified key in this map(optional oper转载 2018-01-29 11:48:12 · 146 阅读 · 0 评论 -
Thread和Runnable的区别
进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。 线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。 多进程是指操作系统能同时运行多个任务(程序)。 多线程是指在同一程序中有多个顺序流在执行。在java中要原创 2017-07-16 21:45:42 · 499 阅读 · 0 评论 -
java删除文件夹下的所有文件
如何删除文件夹下的所有文件,就自己写了一下代码。原创 2017-06-14 21:58:06 · 6247 阅读 · 0 评论 -
类的加载和初始化
类什么时候加载类的加载是通过类加载器(Classloader)完成的,它既可以是饿汉式[eagerly load](只要有其它类引用了它就加载)加载类,也可以是懒加载[lazy load](等到类初始化发生的时候才加载)。原创 2017-07-11 09:21:42 · 462 阅读 · 0 评论 -
HTTP 报文
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的,HTTP有两类报文:请求报文和响应报文.原创 2017-07-10 18:26:35 · 232 阅读 · 0 评论 -
Comparable和Comparator区别
一、Comparable首先来看一下Comparable的定义:package java.lang;import java.util.*;public interface Comparable<T> { public int compareTo(T o);}Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的原创 2017-05-09 18:31:52 · 337 阅读 · 0 评论 -
集合框架
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架。在平常的学习开发中,灵活熟练地使用这些集合框架,可以很明显地提高我们的开发效率,当然仅仅会用还是不够的,理解其中的设计思想与原理才能更好地提高我们的开发水平。下面是自己对Java集合框架方面的学习总结。转载 2017-05-07 22:07:10 · 2707 阅读 · 0 评论 -
阻塞队列实现生产者消费者
阻塞队列 Blocking Queue当队列空时,获取元素的线程会等待 当队列满时,存储元素的线程会等待。我们用阻塞队列来实现生产者消费者问题。原创 2017-05-07 16:50:35 · 357 阅读 · 0 评论 -
线程
线程的创建,有两种方法,一种是继续Thread类,另外一种是实现Runable接口。原创 2017-05-02 23:26:28 · 176 阅读 · 0 评论 -
Java对象的生命周期
在Java中,对象的生命周期包括以下几个阶段:1. 创建阶段(Created)2. 应用阶段(In Use)3. 不可见阶段(Invisible)4. 不可达阶段(Unreachable)5. 收集阶段(Collected)6. 终结阶段(Finalized)7. 对象空间转载 2017-04-16 22:16:55 · 2606 阅读 · 0 评论 -
Java面试题总结
1.接口和抽象类的区别①抽象类里可以有构造方法,而接口内不能有构造方法。②抽象类中可以有普通成员变量,而接口中不能有普通成员变量。③抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。④抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只有public和默认类型。⑤ 抽象类转载 2017-04-16 21:14:30 · 173 阅读 · 0 评论 -
Java 8中处理日期和时间示例
在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateFormat类处理。同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端。并且也借鉴了第三方日期库joda很多的优点。在java...转载 2018-12-20 19:26:51 · 315 阅读 · 0 评论