java基础
huangyunbin90
这个作者很懒,什么都没留下…
展开
-
java方法的syntethic类型
[size=medium]我们一般说java的方法有public private,但其实还有种是syntethic。什么是syntethic呢 就是外部类的方法持有内部类的私有变量。具体的解释可以看:http://ifeve.com/syntethic-and-bridge-methods/。这个文章顺便解释呢方法类型的bridge。bridge就是有对父类泛型的重写,就是父类的方法返...2014-04-15 19:16:32 · 67 阅读 · 0 评论 -
java中i++容易坑人的地方
[code="java"] public static void main(String[] args) { int no =0; for (int i = 0; i2013-10-12 14:56:38 · 65 阅读 · 0 评论 -
一个容易被final迷惑的地方
[size=medium]方法中的参数加不加final是区别很大的[/size][code="java"]public class Final { final static int i =3; public static void main(String[] args) { go(i); } public static ...2013-10-10 10:52:31 · 66 阅读 · 0 评论 -
java的ConcurrentHashMap太吃内存了啊
[code="java"]public class BattleTest { static int num=1_000_000; @Testpublic void testHashMap() throws Exception{ List list=new ArrayList(num); for (int i = 0; i < num; i++) { Map p...2014-03-15 16:51:49 · 484 阅读 · 0 评论 -
System.nanoTime()的使用
[size=medium]纳秒 ns(nanosecond):纳秒, 时间单位。一秒的10亿分之一,即等于10的负9次方秒。常用作 内存读写速度的单位。 1纳秒=0.000001 毫秒 1纳秒=0.00000 0001秒java的System.currentTimeMillis()和System.nanoTime()区别:java中System.nanoTime(...2013-09-19 17:47:24 · 812 阅读 · 0 评论 -
http中Cache-Control详解
[size=medium]Cache-control: max-age=5表示当访问此网页后的5秒内再次访问不会去服务器Cache-Control: no-cache:这个很容易让人产生误解,使人误以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。 C...2013-09-17 15:40:59 · 99 阅读 · 0 评论 -
java 关闭main方法中的定时器线程
[code="java"]public class TestTreadClose { public static volatile boolean flag = true; public static void main(String[] args) throws Exception { Thread t = new Thread() { ...原创 2016-05-20 15:29:04 · 87 阅读 · 0 评论 -
java 关闭main方法中的定时器线程(2)
[code="java"]import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;/** * Created by cloud.huang on 16/5/20. */...2016-05-20 15:49:28 · 79 阅读 · 0 评论 -
获取字符长度的正确姿势
[code="java"]public static void main(String[] args) throws UnsupportedEncodingException { String a="\uD864\uDD00"; System.out.println(a.length()); //结果是2 System.out.println(a.codePointC...2017-05-23 16:09:31 · 190 阅读 · 0 评论 -
解决tomcat中反序列化找不到class
[size=medium]tomcat反序列化的过程中一直报ClassNotFoundException,这个是什么原因呢很明显是classloader找不到这个class,为什么呢,我的应用代码中明明就有啊。实际上java反序列化的时候,我们一般用的是ObjectInputStream,他默认会去找sun.misc.VM.latestUserDefinedLoader(),这个就是系...2017-05-19 09:59:23 · 219 阅读 · 0 评论 -
java对象初始化的顺序
[code="java"]public class Son extends Father { String value = null;//2 public Son() { super(); //1 System.out.println("Son: " + value);//3 } publi...2016-10-08 17:18:06 · 86 阅读 · 0 评论 -
关于java的非法向前引用
[size=medium]下面的注释这行代码为什么会报错:非法向前引用?这个时候我debug都可以看到i的值是100.为什么不能打印出来呢?[/size][code="java"]public class Test { static { i = 100;// System.out.println("===================...2013-08-20 17:53:09 · 104 阅读 · 0 评论 -
构造函数使用不小心的一个大问题
[size=medium]错误的代码: [/size][code="java"]public class Secure {private String type; private String fileKey = type+"File:"; private String totalKey = type+"s"; Secure(String type){ ...2013-08-03 00:33:30 · 63 阅读 · 0 评论 -
java的字符不是对象 坑啊
[code="java"]public static void main(String[] args) { List link = new ArrayList(); link.add('E'); link.remove('E'); }[/code][size=medium]这个时候是会报错的,本来我们是想remove E这个对象,但是字符E不是对象,会被当成一...原创 2013-12-09 20:28:08 · 66 阅读 · 0 评论 -
返回false 还是抛出异常?
[size=medium]目前看来是抛出异常的方式在多条件的情况更好。不知道大家怎么看[/size][code="java"]public class A { public boolean get() { if(!method1()){ return false; } if(!method2()){ return fals...2013-07-11 12:15:13 · 184 阅读 · 0 评论 -
ServiceLoader的使用
[size=medium] 发现ServiceLoader是个类似spring的东西,可以指定接口和实现,通过ServiceLoader去载入。下面是我的一个例子:[/size][code="java"]package com.test2;import java.util.ServiceLoader;import com.test.IHello;public c...2013-06-06 11:30:06 · 74 阅读 · 0 评论 -
mvel表达式遇到的坑
简单的说是:mvel中int和一个double做乘法,是可能出问题的[code="java"]public static void main(String[] args) throws Exception { System.err.println(1350*0.7*(0.97+0.5*0.06)); String exp3="a...2014-12-31 18:02:31 · 224 阅读 · 0 评论 -
对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾
在hibernate启动的时候报了个错: 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾原因是在hibernate的配置文件中:jdbc:mysql://127.0.0.1/cache?useUnicode=true&characterEncoding=utf-8要改为jdbc:mysql://127.0.0.1/cache?useUnic...2015-01-03 11:27:48 · 77 阅读 · 0 评论 -
java用cyclicBarrier来实现Phaser的分段功能
[size=medium]cyclicBarrier是有自动重置功能的,我们可以用这个功能来实现分阶段:还是之前的需求: 开启3个线程,分别打印字母a,b,c各10次,然后进入下一阶段打印后面的字母d,e,f各10次,然后再进入下一阶段.......以此类推,直到整个字母表全部打印完毕。下面是代码,可以看到是有点麻烦的cyclicBarrier是没有明确的分段功能的,坑爹的是如...2015-01-26 10:22:08 · 90 阅读 · 0 评论 -
Java的Integer是由缓存决定的,我们可以改变缓存来改变Integer
[code="java"]import java.lang.reflect.Field;import java.util.Random;public class IntegerTest { public static void main(String[] args) throws Exception { Class clazz = Class.forName("j...2015-01-25 16:00:24 · 95 阅读 · 0 评论 -
java 的 AccessController.doPrivileged使用
[size=medium] AccessController.doPrivileged意思是这个是特别的,不用做权限检查.在什么地方会用到呢:加入1.jar中有类可以读取一个文件,现在我们要使用1.jar去做这个事情.但是我们的类本生是没有权限去读取那个文件的,一般情况下就是眼睁睁的看着了. 但是jiava提供了doPrivileged.在1.jar中如果读取文件的方法是通过d...2013-09-16 01:40:43 · 75 阅读 · 0 评论 -
java 反射 getDeclaredField和getField的区别
[size=medium]getDeclaredField是可以获取一个类的所有字段.getField只能获取类的public 字段.[/size][code="java"] public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException { ...2013-09-15 16:26:35 · 82 阅读 · 0 评论 -
java反射的field.get(null)
[size=medium]在java的反射中,通过字段获取对象,是通过[/size][code="java"]public Object get(Object obj)[/code][size=medium]字段不是静态字段的话,要传入反射类的对象.如果传null是会报java.lang.NullPointerException但是如果字段是静态字段的话,传入任何对象都是可...2013-09-15 12:18:54 · 97 阅读 · 0 评论 -
BigDecimal做四舍五入的坑
[code="java"]BigDecimal decimal = new BigDecimal(String.valueOf(2.345f));decimal.setScale(3,RoundingMode.HALF_EVEN);[/code][size=medium]BigDecimal是不可变对象,上面的写法是有问题的,应该这样写:[/size][code="...2015-01-12 10:23:09 · 153 阅读 · 0 评论 -
关于代码执行顺序
[size=medium]很多时候我觉得我的基础也还可以了,但是感觉还不够,下面是我被面试的一个面试题目,我稍微改了下的。有三个类,b类继续a类,c类似被a类引用。[/size][code="java"]public class A { private C c=new C(); A(){ System.err.println("A1"); } ...2013-05-21 20:58:34 · 89 阅读 · 0 评论