HttpURLConnection连接超时问题
摘要:1、问题描述 这几天测试重构后的下载框架,发现在下载过程中如果网络中断或网络较差,个别应用的下载就会阻塞卡住,一直卡在 “正在下载 xx%”。 2、问题排查和定位 思考:网络差不应该报网络异常的错误或者直接抛timeout异常吗?所以马上去检查Http请求的地方:发现在DownloadThread中
阅读全文
posted @
2018-04-16 09:42
@ 小浩
阅读(20344)
推荐(0) 编辑
Java5,Java 6,Java 7,Java 8新特性
摘要:Java5: 1、泛型 Generics: 引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处。 Parameterized Type作为参数和返回值,Generic是vararg、annotation、enumeration、collection的基石。
阅读全文
posted @
2018-04-16 07:25
@ 小浩
阅读(312)
推荐(0) 编辑
反射中Class.forName()和ClassLoader.loadClass()的区别
摘要:一 Java类装载过程 装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字
阅读全文
posted @
2018-04-16 07:02
@ 小浩
阅读(9085)
推荐(0) 编辑
Java的clone():深复制与浅复制
摘要:Java的clone():深复制与浅复制 Java中要想自定义类的对象可以被复制,自定义类就必须实现Cloneable中的clone()方法,如下: 1 public class Student implements Cloneable { 2 3 private String name; 4 5
阅读全文
posted @
2018-04-15 17:34
@ 小浩
阅读(405)
推荐(0) 编辑
比较java枚举成员使用equal还是==
摘要:问题 我知道Java枚举会被编译成一个包含私有构造参数和一堆静态方法的类,当去比较两个枚举的时候,总是使用equals()方法,例如: public useEnums(SomeEnum a) { if(a.equals(SomeEnum.SOME_ENUM_VALUE)) { ... } ... }
阅读全文
posted @
2017-08-21 17:01
@ 小浩
阅读(31088)
推荐(2) 编辑
maven package 命令报:-source1.3 中不支持注释错误
摘要:在使用maven 打包或者编译时报:-source1.3 中不支持注释错误解决方案如下: <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <confi
阅读全文
posted @
2017-08-01 17:37
@ 小浩
阅读(746)
推荐(0) 编辑
java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
摘要:在Java中,所有对象都能够被作为"监视器monitor"——指一个拥有一个独占锁,一个入口队列和一个等待队列的实体entity。所有对象的非同步方法都能够在任意时刻被任意线程调用,此时不需要考虑加锁的问题。而对于对象的同步方法来说,在任意时刻有且仅有一个拥有该对象独占锁的线程能够调用它们。例如,一
阅读全文
posted @
2017-07-04 19:00
@ 小浩
阅读(10197)
推荐(0) 编辑
volotile关键字的内存可见性及重排序
摘要:在理解volotile关键字的作用之前,先粗略解释下内存可见性与指令重排序。 1. 内存可见性 Java内存模型规定,对于多个线程共享的变量,存储在主内存当中,每个线程都有自己独立的工作内存,并且线程只能访问自己的工作内存,不可以访问其它线程的工作内存。工作内存中保存了主内存中共享变量的副本,线程要
阅读全文
posted @
2017-06-23 22:22
@ 小浩
阅读(516)
推荐(0) 编辑
Java中的volatile关键字为什么不是不具有原子性
摘要:Java中long赋值不是原子操作,因为先写32位,再写后32位,分两步操作,而AtomicLong赋值是原子操作,为什么?为什么volatile能替代简单的锁,却不能保证原子性?这里面涉及volatile,是java中的一个我觉得这个词在Java规范中从未被解释清楚的神奇关键词,在Sun的JDK官
阅读全文
posted @
2017-06-23 20:55
@ 小浩
阅读(780)
推荐(0) 编辑
Java中的yield关键字的简单讲解
摘要:Thread.yield()方法作用是:暂停当前正在执行的线程对象,并执行其他线程。yield()应该做的是让当前运行线程回到可运行状态,以允许具有相同优先级的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的
阅读全文
posted @
2017-06-21 18:21
@ 小浩
阅读(3974)
推荐(0) 编辑
Java内部类引用外部类中的局部变量为何必须是final问题解析
摘要:今天编写一个多线程程序,发现在方法内定义内部类时,如果内部类调用了方法中的变量,那么该变量必须申明为final类型,百思不得其解,后来想到应该是生命周期的原因,因为方法内定义的变量是局部变量,离开该方法,变量就失去了作用,也就会自动被消除,而内部类却不会离开它所在方法就失去作用,它有更广的生命周期,
阅读全文
posted @
2017-05-07 16:36
@ 小浩
阅读(2765)
推荐(0) 编辑
Callable接口和Future
摘要:本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Fut
阅读全文
posted @
2017-05-07 16:35
@ 小浩
阅读(267)
推荐(0) 编辑
Java的自动装箱和拆箱的简单讲解
摘要:装箱就是把基础类型封装成一个类。比如把int封装成Integer,这时你就不能把他当成一个数了,而是一个类了,对他的操作就需要用它的方法了。 拆箱就是把类转换成基础类型。比如你算个加法什么的是不能用类的,就得把它转换成基本类型,jdk5以后已经可以自动转换了貌似。基本类型你应该懂的吧 (byte,s
阅读全文
posted @
2016-12-18 19:02
@ 小浩
阅读(807)
推荐(0) 编辑
BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法
摘要:BigDecimal除法运算出现java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result的解决办法 今天在使用两个BigDecimal类型的数字做除法
阅读全文
posted @
2016-10-23 20:52
@ 小浩
阅读(487)
推荐(0) 编辑
Java 中的instanceof简单讲解
摘要:Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法:result = object instanceof class参数:Result:布尔类型。Object:
阅读全文
posted @
2016-10-18 16:13
@ 小浩
阅读(1888)
推荐(0) 编辑
常见的特殊字符和HTML之间的对应关系~
摘要:No.文字表記10進表記16進表記文字 Comment 001 " " " """ quotation mark = APL quote 002 & & & "&" ampersand 003 < < < "<" less
阅读全文
posted @
2016-09-25 22:52
@ 小浩
阅读(333)
推荐(0) 编辑
Java字符代码中干掉制表符、回车符和换行符
摘要:Java字符代码中干掉制表符、回车符和换行符 代码片段: String sql = StringUtils.trim(sql).replaceAll("[\\r\\n\\t]","");//干掉空格和换行符以及制表符; 说明:String类的replaceAll就有正则替换功能。 \t为制表符 \n
阅读全文
posted @
2016-09-25 13:27
@ 小浩
阅读(904)
推荐(0) 编辑
UUID是如何保证全局唯一的
摘要:UUID由以下几部分的组合: (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。 据说时间粒度很小 (2)时钟序列。 (3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
阅读全文
posted @
2016-09-12 09:20
@ 小浩
阅读(1574)
推荐(0) 编辑
Java内存溢出详解
摘要:Java内存溢出详解 一、常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不
阅读全文
posted @
2016-09-11 13:55
@ 小浩
阅读(1460)
推荐(0) 编辑
Java 版本6下载大全
摘要:Oracle 官方 JDK6 下载地址: 基本包含所有的JDK6版本。 需要登注册相应的账户登录到Oracle官网~ http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java
阅读全文
posted @
2016-09-10 20:07
@ 小浩
阅读(2525)
推荐(0) 编辑