随笔分类 -  JAVA

摘要:JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。 1、继承Thread类实现多线程继承Thread类的方法尽管被 阅读全文
posted @ 2016-12-14 18:39 Big_Foot 阅读(311) 评论(0) 推荐(0)
摘要:Future模式 Future接口是Java线程Future模式的实现,可以来进行异步计算。 Future模式可以这样来描述: 我有一个任务,提交给了Future,Future替我完成这个任务。期间我自己可以去做任何想做的事情。一段时间之后,我就便可以从Future那儿取出结果。 就相当于下了一张订 阅读全文
posted @ 2016-12-14 18:38 Big_Foot 阅读(315) 评论(0) 推荐(0)
摘要:Java语言要求java程序中(无论是谁写的代码)所有抛出(throw)的异常都必须是从Throwable派生而来。当然,实际的Java编程中,由于JDK平台已经为我们设计好了非常丰富和完整的异常对象分类模型。因此,java程序员一般是不需要再重新定义自己的异常对象。而且即便是需要扩展自定义的异常对 阅读全文
posted @ 2016-12-14 15:35 Big_Foot 阅读(13926) 评论(1) 推荐(0)
摘要:一、基本概念 看java的异常结构图 Throwable是所有异常的根,java.lang.ThrowableError是错误,java.lang.ErrorException是异常,java.lang.Exception 二、Exception 一般分为Checked异常和Runtime异常,所有 阅读全文
posted @ 2016-12-14 14:38 Big_Foot 阅读(634) 评论(0) 推荐(0)
摘要:输出结果: 阅读全文
posted @ 2016-12-08 10:59 Big_Foot 阅读(95786) 评论(0) 推荐(6)
摘要:前面在javaSe中我已经整理了相关的一些数据结构,现在就性能方面在这里做一个总结。以后在实际编码中,应该按照这样子来初始化相关的数据结构。 1,StringBuffer和StringBuilder StringBuffer() 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。 Str 阅读全文
posted @ 2016-12-07 23:19 Big_Foot 阅读(351) 评论(0) 推荐(0)
摘要:jvm classLoader architecture : a、Bootstrap ClassLoader/启动类加载器 主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作. B、Extension ClassLoader/扩展类加 阅读全文
posted @ 2016-12-07 22:34 Big_Foot 阅读(185) 评论(0) 推荐(0)
摘要:javac.exe是编译.java文件 java.exe是执行编译好的.class文件 javadoc.exe是生成Java说明文档 jdb.exe是Java调试器 javaprof.exe是剖析工具 阅读全文
posted @ 2016-12-07 22:14 Big_Foot 阅读(252) 评论(0) 推荐(0)
摘要:Java不支持多继承,但是通过一些巧妙的设计来达到和多继承同样的效果 通过接口、内隐类,继承、实现,互相配合,达到多继承的效果 1、Java中一个类不能继承多个具体class。 2、一个类只可继承自一个具体 class,但可实现多个接口。 interface不涉及到实现细节,不与任何存储空间有关连。 阅读全文
posted @ 2016-12-07 20:49 Big_Foot 阅读(19325) 评论(0) 推荐(0)
摘要:static String str0="0123456789"; static String str1="0123456789"; String str2=str1.substring(5); String str3=new String(str2); String str4=new String( 阅读全文
posted @ 2016-12-07 20:36 Big_Foot 阅读(844) 评论(0) 推荐(0)
摘要:1:通过ClassLoader寻找和装载class文件 2:解释字节码成为指令并执行,提供class文件的运行环境。即将字节码转换为不同OS下可执行的机器码指令。 3:进行垃圾回收。 4:提供与硬件交互的平台,即是JVM机器指令与硬件的交互。 阅读全文
posted @ 2016-12-07 20:04 Big_Foot 阅读(615) 评论(0) 推荐(0)
摘要:如果加入TreeSet和TreeMap的元素没有实现comprable中的compareTo()方法,那么会报错“treeset cannot be cast to java.lang.Comparable”. 要解决这个问题有两种方法: (1)让元素自身具有比较性;可以实现Comparable接口 阅读全文
posted @ 2016-12-06 22:46 Big_Foot 阅读(2829) 评论(0) 推荐(0)
摘要:基础类,没有重写hashCode()和equals()方法: 测试类: 输出结果:由于没有重写hasCode和equals方法,所以s3和s4对象认为是不相同的,因此在set中被看成了不同的对象;同理,在hashMap和hashTable中,其根据hashCode的值对数据进行存储的,所以,hash 阅读全文
posted @ 2016-12-06 17:13 Big_Foot 阅读(551) 评论(0) 推荐(0)
摘要:replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是: 1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串); 2)replaceAll的参数是regex 阅读全文
posted @ 2016-12-06 16:39 Big_Foot 阅读(945) 评论(0) 推荐(0)
摘要:基本数据类型和String类型都是值传递,数组,对象等是引用传递 经多方面查找,String很奇特,虽然是引用数据类型,但是采用的却是值传递!!!基本数据类型采用的都是值传递,数组和对象都是引用传递(数组可以按照对象来算),值传递不会改变本身,只是传递拷贝,而引用传动却会改变本身!!!str属于值传 阅读全文
posted @ 2016-12-06 16:34 Big_Foot 阅读(435) 评论(0) 推荐(0)
摘要:程序代码: 输出:truetruefalsetrue JVM中一个字节以下的整型数据会在JVM启动的时候加载进内存,除非用new Integer()显式的创建对象,否则都是同一个对象 所有只有i04是一个新对象,其他都是同一个对象。所有A,B选项为true C选项i03和i04是两个不同的对象,返回 阅读全文
posted @ 2016-12-06 16:19 Big_Foot 阅读(254) 评论(0) 推荐(0)
摘要:程序代码: C:\Users\yeqxiong\Desktop>javac f.java C:\Users\yeqxiong\Desktop>java f 1 2 3 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsExceptio 阅读全文
posted @ 2016-12-06 16:05 Big_Foot 阅读(235) 评论(0) 推荐(0)
摘要:堆区:只存放类对象,线程共享; 方法区:又叫静态存储区,存放class文件和静态数据,线程共享; 栈区:存放方法局部变量,基本类型变量区、执行环境上下文、操作指令区,线程不共享; 下列Java代码中的变量a、b、c分别在内存的____存储区存放。 1 2 3 4 5 6 7 class A { pr 阅读全文
posted @ 2016-12-06 14:41 Big_Foot 阅读(4225) 评论(1) 推荐(0)
摘要:含 有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以 阅读全文
posted @ 2016-12-06 14:22 Big_Foot 阅读(1044) 评论(0) 推荐(0)
摘要:Array可以存放Object和基本数据类型,但创建时必须指定数组的大小,并不能再改变, Vertor是放的Object。 Vertor一维,Hashmap/Hashtabe二维; Vertor/Arraylist用index作检索,Hashmap/Hashtabe用key作为检索; Hashmap 阅读全文
posted @ 2016-12-05 23:35 Big_Foot 阅读(544) 评论(0) 推荐(0)