![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
犁叔
一个爱学习,知上进,善沟通,重细节,懂感恩的人。
展开
-
Hashmap的遍历
HashMap是基于哈希表的Map接口实现。此实现提供所有可选的映射操作,并允许使用Null值和Null键。HashMap并不保证映射的顺序。对于HashMap的遍历方式有两种。方法一:import java.util.HashMap;import java.util.Iterator;public class Test { public static void main(S原创 2013-12-26 22:30:12 · 580 阅读 · 0 评论 -
Java关键字final和static
一、final在java编程语言中,有时候需要告知编译器一段数据是不变的编译期常量。对于这种情况,编译器可以将此常量值带入需要用到它的计算式子当中,这种在编译时执行计算式的方法减轻了运行时的开销。通常,这类常量数据都是基本类型的数据,并赋予关键字final,同时在对此常量定义时需要进行赋值。1、final类final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是f原创 2015-05-10 18:16:15 · 372 阅读 · 0 评论 -
Java多态总结
JAVA引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态(Polymorphism)。多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引原创 2015-05-10 12:54:34 · 600 阅读 · 0 评论 -
Java对象包装器与自动打包
所有基本类型都有一个与之对应的类,例如,Integer类对应基本类型int。通常,这些类称为包装器(wrapping)。这些对象包装器拥有很鲜明的名字:Integer、Long、Float、Double、Short、Byte、Character、Void和Boolean(前面六个类派生于公共的超类Number)。对象包装器类是不可变的,一旦构造了包装器,就不允许更改包装器里面的值。同时,对象包装器原创 2015-05-10 23:15:51 · 1475 阅读 · 0 评论 -
Java抽象类和接口
一、抽象类抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。声明格式:abstract class ClassName { abstract void fun();}抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。抽象类就是原创 2015-05-14 17:28:19 · 510 阅读 · 0 评论 -
类名.class, class.forName(), getClass()区别
1、类名.class说明:JVM将使用类装载器,将类装入内存(前提是:类还没有装入内存),不对类做类的初始化工作。返回类的Class的对象。2、Class.forName("类名字符串")(注:类名字符串是包名+类名)说明:装入类,并做类的静态初始化,返回Class的对象。3、实例对象o.getClass()说明:对类进行静态初始化、非静态初始化;返回引用o运行时真正所指的对象原创 2015-06-14 22:41:35 · 1861 阅读 · 0 评论 -
Java Socket之网络相关API
一、InetAddress1. InetAddress类没有构造方法,所以不能直接new出一个对象;可以通过InetAddress类的静态方法获得InetAddress的对象;InetAddress.getLocalHost();InetAddress.getByName();2. 类主要方法:String - address.getHostName();String原创 2016-04-12 23:05:33 · 553 阅读 · 0 评论 -
Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。原创 2017-07-22 15:15:31 · 187 阅读 · 0 评论 -
JAVA的值传递与参数传递
JAVA引用传递和值传递原创 2017-08-17 21:32:03 · 481 阅读 · 0 评论 -
Java向上转型和向下转型
首先定义父类Animal,所有动物都有一个吃东西的方法;子类Dog还增加了一个叫的功能。public class Animal { public void eat() { System.out.println("eat like an animal"); }}public class Dog extends Animal { @Override public void e原创 2015-04-24 18:11:46 · 508 阅读 · 0 评论 -
Java线程总结
一、Java线程同步原理Java会为每个object对象分配一个monitor,当某个对象的同步方法(synchronized methods )被多个线程调用时,该对象的monitor将负责处理这些访问的并发独占要求。当一个线程调用一个对象的同步方法时,JVM会检查该对象的monitor。如果monitor没有被占用,那么这个线程就得到了monitor的占有权,可以继续执行该对象的同步方原创 2015-04-24 17:15:48 · 303 阅读 · 0 评论 -
集合类接口和类层次关系图
1. Collection vs Collections首先,“Collection”和“Collections”是两个不同的概念。你可以从下面的层次关系图中看到,”Collection”是集合层次的顶层接口,而”Collections”是提供了操作集合类型的静态方法的类。2. 集合类层次关系图下图是集合类的层次关系图3. Map的类层次结构关系图转载 2014-04-11 08:01:47 · 694 阅读 · 0 评论 -
Java多线程run和start的区别
start方法:用来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为线程体, 它包含了要执行的这个线程的内容, run方法运行结束, 此线程终止, 而CPU再运行其它线程, 直接用run方法: 这只是调用一个方法而已, 程序中依然只有主线程--这一个线程, 其程序执行路径还是只有一条, 这样就没有达原创 2014-04-21 22:21:25 · 512 阅读 · 0 评论 -
导出csv文件有乱码
项目中生成csv文件,里面出现中文乱码问题,后来加了一行out.write(0xFEFF)后问题就解决了。res.setContentType("application/x-xls");res.setHeader("Content-disposition", "attachment;filename=" + name+ ".csv");out.write(0xFEFF);out.p原创 2014-04-22 08:16:28 · 2915 阅读 · 0 评论 -
Java堆和栈的区别
堆是一个运行时数据区,用于存放由new创建的对象he原创 2014-04-11 07:53:04 · 455 阅读 · 0 评论 -
使用SimpleDateFormat可以获取给定日期的年份、月份、日期和月份
使用SimpleDateFormat可以获取给定日期的年份、月份、日期和月份。原创 2014-06-13 19:02:51 · 9114 阅读 · 0 评论 -
基于泛型实现ArrayList的复合排序
最近项目中经常要对list进行复合排序,原创 2014-09-21 11:13:56 · 692 阅读 · 0 评论 -
使用HashSet过滤掉重复的字符
利用HashSet不允许存在重复元素的特性,可以实现对重复元素的过滤。public static void main(String[] args) { String[] str = { "a", "b", "c", "d", "b", "a" }; // 方法1 Set hashSet = new HashSet(); hashSet.addAll(Arrays.asList(原创 2015-04-01 09:10:13 · 1448 阅读 · 0 评论 -
深入探讨 Java 类加载器
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java转载 2015-04-24 09:47:28 · 355 阅读 · 0 评论 -
JVM垃圾收集器详解
一、概述评估一个垃圾收集(GC)算法如何根据如下两个标准:1. 吞吐量(throughput)吞吐量是指应用程序线程用时占程序总用时的比例。 例如,吞吐量99/100意味着100秒的程序执行时间应用程序线程运行了99秒,而在这一时间段内GC线程只运行了1秒。2. 暂停时间(pause times)暂停时间是指一个时间段内应用程序线程让与GC线程执行而完全暂停。 例如,GC期原创 2017-08-06 15:16:57 · 409 阅读 · 0 评论