Java疑难
文章平均质量分 78
talentluke
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
file.encoding
参考链接 http://blog.youkuaiyun.com/zhuyijian135757/article/details/37706437 http://blog.youkuaiyun.com/elia1208/article/details/6329428 http://blog.youkuaiyun.com/huoyunshen88/article/details/25896677 htt...原创 2015-07-23 23:43:02 · 451 阅读 · 0 评论 -
Java 虚拟机是如何判定两个 Java 类是相同
Java 虚拟机不仅要看类的全名是否相同,还要看加载此类的类加载器是否一样。只有两者都相同的情况,才认为两个类是相同的。 对于 Java 虚拟机来说,如果两个类不同,试图对这两个类的对象进行相互赋值,会抛出运行时异常 ClassCastException。 //文件Sample.javapackage com.luke;public class Sample{ pri...原创 2013-05-27 17:17:06 · 878 阅读 · 0 评论 -
JAVA线程池例子
原文地址 http://blog.youkuaiyun.com/v1v1wang/article/details/5607279用途及用法 网络请求通常有两种形式:第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等。另一种形式是请求频繁,但是连接上以后读/写很少量的数据就断开连接。考虑到服务的并发问题,如果每个请...原创 2012-08-29 17:29:55 · 132 阅读 · 0 评论 -
深入探讨 Java 类加载器
参考深入探讨 Java 类加载器http://www.ibm.com/developerworks/cn/java/j-lo-classloader/#minor1.1 Java程序员从笨鸟到菜鸟之(九十七)深入java虚拟机(六)——类加载的父亲委托机制http://blog.youkuaiyun.com/csh624366188/article/details/80764...原创 2013-05-21 11:06:07 · 134 阅读 · 0 评论 -
java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError的区别
这2个东西应该是java里很常见,很简单,他们都和classpath设定有关,但区别在哪里呢? 我们都知道java里生成对象有如下两种方式: 1:Object obj = new ClassName(); 直接new一个对象 2:Class clazz = Class.forName(ClassName); Object obj = cla...原创 2013-05-21 11:05:11 · 191 阅读 · 0 评论 -
深入探讨 Java 类加载器
摘自http://www.ibm.com/developerworks/cn/java/j-lo-classloader/#code1 简介: 类加载器(class loader)是 Java™中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本概念,包括代理模式、加载类的具体过程和线程上下文类加载器等,接着...原创 2013-05-20 15:51:43 · 133 阅读 · 0 评论 -
深入探讨 Java 类加载器
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}</style>...原创 2013-05-20 15:48:16 · 134 阅读 · 0 评论 -
final变量需要显示初始化
final int f = 10;//final int f;下面语句会报未初始化的错误System.out.print("f = " + f); 必须显示初始化final变量,不能误以为以默认值初始化。原创 2013-05-20 00:15:37 · 308 阅读 · 0 评论 -
Java内存泄露的理解与解决
Java内存管理机制在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本...原创 2012-12-10 15:57:09 · 113 阅读 · 0 评论 -
java类型转换不够用高位补
byte b = (byte)0xFF; System.out.println("b===" + b);//-1 int i = b;//位不够就用用高位补,故是负值 System.out.println("i===" + i);//-1 i = (int)b;//位不够就用用高位补,故是负值 System.out.println...2012-12-06 21:23:40 · 276 阅读 · 0 评论 -
MySQL:datetime类型与java.util.Calendar
1.转换MySQL中数据类型datetime格式:2007-3-9 0:00:00使用JAVA添加数据其与JAVA中数据类型对应的类是:java.sql.TimestampTimestamp构造方法无参构造方法,生成对象为当前系统时间Long参数构造方法;生成使用long值转换而成的时间2.转换long的值转换为日期时间,不易明确日期时间编写时1235451...原创 2012-08-28 14:44:07 · 258 阅读 · 0 评论 -
try-catch-finally中return的执行情况
public class Test2 { public static void main(String[] args) { System.out.print("in main b = " + tt()); } public static int tt() { int b = 23; ...原创 2013-05-18 12:04:34 · 126 阅读 · 0 评论 -
Java远程通讯可选技术及原理
源自http://www.blogjava.net/BlueDavy/archive/2008/03/04/182077.html 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实...原创 2013-05-13 11:13:57 · 384 阅读 · 0 评论 -
Java EJB、CORBA、Webservices分布式通信基本原理及特点
1. Java远程调用的特点是什么 2. Java EJB、CORBA、Webservices分布式通信基本原理及特点 3.Java 远程调用与分布式通信的区别 4. Java 分布式通信的几种方式及其特点 5. Java WebService异构系统通信的原理及特点:SOAP与WSDL 1. Java远程调用的特点是什么 ...原创 2013-05-13 10:19:21 · 361 阅读 · 0 评论 -
java编译过程与c/c++编译过程不同
1、java编译过程与c/c++编译过程不同java编译程序将java源程序编译成jvm可执行代码--java字节码.c/c++编译过程:当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。java编译过程:java编译器却不将对变量和方法的引用编译为数值引用,...原创 2012-12-18 09:39:33 · 165 阅读 · 0 评论 -
认识java JVM与c/c++的执行效率
认为Java不能写JVM是完全错误的。JNode是一个用Java写的开源操作系统,他里面的JVM就是用Java写的。这个操作系统现在有几十兆,其中99%的代码是用java编写,其中只有一个极小的“操作系统引导程序”是用汇编写的,我们暂时称之为booter.exe,大小为几KB。 booter.exe的作用就是将用java写的JVM编译并装入内存,简单的说就是将JVM.class编译...原创 2012-12-18 09:46:35 · 262 阅读 · 0 评论 -
javac和java的路径问题
javac和java的路径问题设定项目目录为packageTest,举三个例子来讨论javac和java两个命令对路径的要求。例1:javac的搜索根目录为当前目录,例如,在test下建立如下目录:aaa/bbb/ccc,再在test下建立一个文件:Main.java,内容如下:view plaincopy to clipboardprint?1. package aaa.b...原创 2013-11-03 22:57:21 · 937 阅读 · 0 评论 -
java常用工具
jpsjstatjstackjinfojmap原创 2015-03-30 17:05:13 · 159 阅读 · 0 评论 -
后台线程(守护线程)
所谓的后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分。因此当所有的非后台线程结束时,程序也就终止了,同时会杀死所有后台线程。反过来说,只要有任何非后台线程(用户线程)还在运行,程序就不会终止。后台线程在不执行finally子句的情况下就会终止其run方法。后台线程创建的子线程也是后台线程。下面是一个后台线程的示例:[java...原创 2014-04-09 23:42:18 · 754 阅读 · 0 评论 -
Spring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案
来源http://www.jnan.org/archives/2010/12/cannot-find-the-declaration-of-element-beans.htmlSpring配置文件xsi:schemaLocation无法解析导致启动失败的解决方案今天向服务器部署一个console java app之后,启动时发现程序出现异常:Exception in thread...原创 2014-03-27 16:59:28 · 471 阅读 · 0 评论 -
Java调用dll的路径问题解决
前言:一般我们在用java写jni类库的时候,总是得把生成的dll放在java.library.path所指定的目录下,例如%WINDOWS%\system32,然而通过手动设置setProperties("java.library.path",yourpath),并不能正常使用。所以只能在项目的发布期间拷贝才能正常使用,非常麻烦,有时因经常变动,还会忘记拷贝,导致程序出现错误。笔者在经过网...原创 2013-10-18 00:37:43 · 2438 阅读 · 0 评论 -
Java 内存模型
Java 内存模型转自WIKI,自由的百科全书跳转到导航,搜索 Java内存模型描述了在Java中,线程之间是如何通过内存互相通信、控制或者影响对方。内存模型和单线程模型共同构成了Java编程语言。在1995年设计的Java内存模型被大多数人认为是不成功的,它使得许多可能改善性能的优化措施无法实施,也不能保证代码的绝对安全。在2004年,Tiger(Java 5.0)中,Ja...原创 2014-01-08 10:05:22 · 149 阅读 · 0 评论 -
Java Ant build.xml详解
1、什么是antant是构建工具。2、什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个。3、ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当...原创 2013-07-21 23:52:12 · 140 阅读 · 0 评论 -
抽象类与接口选择
从设计理念层面看 abstract class 和 interface 上面主要从语法定义和编程的角度论述了abstract class和interface的区 别,这些层面的区别是比较低层次的、非本质的。本小节将从另一个层面:abstract class和interface所反映出的设计理念,来分析一下二者的区别。作者认为,从这个层面进行分析才能理解二者概念的本质所在。 前面已经提到过,...原创 2013-12-06 00:20:06 · 192 阅读 · 0 评论 -
java反射
/** *@file_name Teacher.java *@package_name com.luke *@project_name InterviewQuestions *@descripton *@author luke *@time 20...原创 2013-01-22 00:23:18 · 116 阅读 · 0 评论 -
Java中文&编码问题小结
摘自 http://www.blogjava.net/zhugf000/archive/2005/10/09/15068.htmlJava字符编码转换过程说明 常见问题 JVMJVM启动后,JVM会设置一些系统属性以表明JVM的缺省区域。user.language,user.region,file.encoding等。可以使用System.ge...原创 2013-01-21 14:20:08 · 135 阅读 · 0 评论 -
Java中匿名内部类的作用
匿名内部类是内部类的一种简化写法:return new Wrapper { ... }; 等价于:Wrapped extends Wrapper { ... } return new Wrapped(); 难道匿名内部类就只这一点作用吗? 考虑一下这样的case: interface ICount { int count(); }...原创 2013-01-17 22:19:19 · 425 阅读 · 0 评论 -
从classpath下找文件
public Test{public static void main( String args[] ) throws Exception { Properties properties = new Properties(); InputStream in = Test.class.getClassLoader().getSystemResou...原创 2013-01-10 22:11:09 · 173 阅读 · 0 评论 -
Java疑难点总结
1.类加载和初始化加载——>连接(验证->准备->解析)——>初始化。 若父类未初始化,则先初始化父类; 初始化一个类(或接口),不会先初始化它所实现的接口(或父接口); 当使用的静态变量或方法不在当前类或接口中定义,而在父类或接口中定义,则不会初始化当前类而只初始化父类; 总之,主动使用的才初始化。2.类加载器加载器间的父子...原创 2013-06-07 02:41:41 · 206 阅读 · 0 评论 -
java传参是传值还是传引用
个人觉得java是传值,当参数类型是基本类型,复制的是值,而当参数是引用类型时,复制的也是值,只不过这个值是地址。如下例调用change(A a)有几个过程:(1)创建一个临时变量(2)将实参的值复制给临时变量,由于是引用变量,实参的值是一个地址,故存的也是同一个地址(3)方法中改变了临时变量所指向的地址,而实参指向的地址没变 change(String str)同理,改变的...原创 2013-04-28 00:44:18 · 262 阅读 · 0 评论 -
Java方法继承、方法重载、方法覆盖总结
1、方法继承:利用extends关键字一个方法继承另一个方法,而且只能直接继承一个类。 * 当Sub类和Base类在同一个包时Sub类继承Base类中的public/protected/默认级别的变量个方法 * 在不同包时继承public/protected级别的变量和方法。 2、方法重载:如果有两个方法的方法名相同,但参数不一致,那么可以说一个方法是另一个方法的重载。...原创 2013-04-28 00:24:30 · 197 阅读 · 0 评论 -
JVM垃圾回收机制
1.JVM的gc概述 gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存。java语言并不要求jvm有gc,也没有规定gc如何工作。不过常用的jvm都有gc,而且大多数gc都使用类似的算法管理内存和执行收集操作。 在充分理解了垃圾收集算法和执行过程后,才能有效的优化它的性能。有些垃圾收集专用于特殊的应用程序。比如,实时应用程序主要是为了避免垃圾收集中断,而 大多数OLTP应用程序...原创 2013-03-29 14:31:19 · 125 阅读 · 0 评论 -
JVM垃圾回收机制简介
这里向大家描述一下JVM垃圾回收机制的概念,JVM垃圾回收分多级,1级或以上为部分JVM垃圾回收,只会回收Young中的垃圾,内存溢出通常发生于OLD段或Perm段JVM垃圾回收后,仍然无内存空间容纳新的Java对象的情况。JVM垃圾回收简介:JVM垃圾回收分多级,0级为全部(Full)的JVM垃圾回收,会回收OLD段中的垃圾;1级或以上为部分JVM垃圾回收,只会回收Young中的垃圾,...原创 2013-03-29 14:19:15 · 302 阅读 · 1 评论 -
Java volatile和 transient关键字
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。 Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。 这样当多个线程同时与某个对...原创 2013-03-24 17:10:09 · 125 阅读 · 0 评论 -
JUnit总结
JUnit总结 研习了一会儿,写了几个例子,算是明白JUnit的用法了。很奇怪网上的很多文章总是喜欢把简单的问题复杂化……我总结一个简单的,呵呵从代码开始第一个例子:最简单的HelloWorld的测试例子待测类:HelloWorld类(最简单的,省去了注释)package com....原创 2012-03-26 23:54:14 · 168 阅读 · 0 评论 -
JAVA 单继承 与 接口 多重继承
又是一个牛角尖,只是语言不够严谨而已,Java中只支持类的单继承,接口之间的继承同样也是使用extends关键字,但是接口之间是支持多继承的,如下面的例子:[java] view plaincopyinterface IP1 { } interface IP2 { } public interface ISub extend...原创 2013-03-10 23:45:58 · 190 阅读 · 0 评论 -
深入线程的 wait()/notify()
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)"醒来"的线程具有更高的优先级。 (b)正在运行的线程因为其它原因而阻塞。 wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间...原创 2012-02-22 15:15:07 · 165 阅读 · 0 评论 -
java.util.concurrent
当 Java 运行时知识库提供便利、预置的并发性时,为什么还要苦苦挣扎,试图将并发性导入到您的 Collections 类?本系列的下一篇文章将会进一步探讨 java.util.concurrent 名称空间的内容。 Concurrent Collections 是 Java™ 5 的巨大附加产品,但是在关于注释和泛型的争执中很多 Java 开发人员忽视了它们。此外(或者更老...原创 2012-06-21 10:26:52 · 112 阅读 · 0 评论 -
JAVA异常
Throwable是所有Java程序中错误处理的父类,有两种子类:Error和Exception。 Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。 Exception:表示可恢复的例外,这是可捕捉到的。 Java提供了两类主要的异常:runtime ...原创 2012-10-24 10:54:34 · 127 阅读 · 0 评论 -
byte转换成16字节字符串
在剖析该问题前请看如下代码public static String bytes2HexString(byte[] b) {String ret = "";for (int i = 0; i < b.length; i++) {String hex = Integer.toHexString(b[ i ] & 0xFF);if (hex.length() == 1) {hex = '0...原创 2012-06-15 14:27:33 · 1006 阅读 · 0 评论
分享