javaSE
文章平均质量分 68
Chenny丶
这个作者很懒,什么都没留下…
展开
-
内部类的方法(外部调用内部类的方法)
1.使用static可以声明一个内部类, 可以直接在外部调用[java] view plain copyclass Outer{ // 定义外部类 private static String info = "hello world" ; // 定义外部类的私有属性 static class In转载 2016-04-04 17:37:24 · 828 阅读 · 0 评论 -
静态代码块,构造代码块,构造方法的执行顺序
结论:a.父类的静态代码块 b.子类的静态代码块 c.父类的构造代码块 d.父类的构造方法 e.子类的构造代码块 f.子类的构造方法演示父类:package t1;/** * Created by Administrator on 2017/6/4. */public class ClassA { private static String name; private原创 2017-06-04 02:46:54 · 1055 阅读 · 0 评论 -
正则前面的 (?i) (?s) (?m) (?is) (?im)
Q:经常看见的正则前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思?A: 称为内联匹配模式,通常用内联匹配模式代替使用枚举值RegexOptions指定的全局匹配模式,写起来更简洁。 (?i) 表示所在位置右侧的表达式开启忽略大小写模式 (?s) 表示所在位置右侧的表达式开启单行模式。 更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之转载 2017-06-08 23:22:52 · 343 阅读 · 0 评论 -
正则表达式里面(+?)
+ 匹配一次或更多次的重复+?匹配一次或更多次的重复,但是在能使整个匹配成功的前提下使用最少的重复相关知识点:查阅贪婪匹配与懒惰匹配原创 2017-06-08 23:23:46 · 349 阅读 · 0 评论 -
java.lang.Object.clone()分析
文章来源:http://www.cnblogs.com/gw811/archive/2012/10/07/2712252.html 要点总结 1.要使用object的clone方法的前提: a)子类要实现Cloneable接口,否则调用clone()方法,会抛CloneNotSupportedException b)子类要重写clone()方法,然后修改包访问权限为public原创 2017-07-16 20:44:26 · 309 阅读 · 0 评论 -
java泛型 泛型的内部原理:类型擦除以及类型擦除带来的问题
一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会在编译器在编译的时候转载 2017-07-17 18:40:22 · 450 阅读 · 0 评论 -
【JAVA集合详解】HashMap
之前的List,讲了ArrayList、LinkedList,最后讲到了CopyOnWriteArrayList,就前两者而言,反映的是两种思想:(1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢(2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便那么是否有一种数据结构能够结合上面两种的优点呢?有,答案就是HashMap。转载 2017-07-02 03:08:54 · 488 阅读 · 0 评论 -
【JAVA集合详解】Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.ConcurrentMod转载 2017-07-02 02:31:33 · 380 阅读 · 0 评论 -
【JAVA集合详解】Vector与ArrayList与CopyOnWriteArrayList区别
1. Vector & ArrayList 1) Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 2) 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%转载 2017-07-02 02:02:21 · 837 阅读 · 1 评论 -
【JAVA集合详解】LinkedList
上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储单元的地址(下一个存储单元的地址是必要的,有些存储结构还存放有其前一个存储单元的地址),每次查转载 2017-07-02 01:29:10 · 357 阅读 · 0 评论 -
【JAVA集合详解】ArrayList
前言这个分类中,将会写写Java中的集合。集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织、存储数据。这里写的集合,一部分是比较常见的、一部分是不常用但是我个人平时见到过的,一些比较相似的集合(比如HashMap和Hashtable)就只讲一个,突出它们之间的区别即可。最后,要指出一点,对于集合,我认为关注的点主要转载 2017-07-02 01:23:15 · 407 阅读 · 0 评论 -
【JAVA集合详解】并发容器之CopyOnWriteArrayList
原文链接: http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOn转载 2017-07-02 01:19:00 · 387 阅读 · 0 评论 -
Java中的访问控制与修饰符
public :能被所有的类(接口、成员)访问。protected:只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类。private:成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。friendly(缺省):访问权限与转载 2017-04-27 19:52:42 · 455 阅读 · 0 评论 -
使用Executors创建和管理线程
1. 类 Executors此类中提供的一些方法有:1.1 public static ExecutorService newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。 1.2 public static ExecutorService new转载 2017-04-26 00:16:01 · 266 阅读 · 0 评论 -
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同转载 2017-04-26 00:12:06 · 293 阅读 · 0 评论 -
paint().paintComponent()方法的区别
1 - paint() 中调用 paintComponent(), paintBorder(), paintChildren()2 - 最重要的区别是“双缓冲”。Swing 组件的 paint() 中实现了双缓冲,所以不要随便去覆写,会破坏双缓冲的,————建议的方式是覆写 paintComponent(),很多人做的小程序会”闪烁“,就是因为他们覆写了 paint() 方法,破坏了Swing原创 2016-06-16 21:13:15 · 3501 阅读 · 0 评论 -
Java迭代器注意事项
java迭代器是用来遍历集合的1.它是一个接口,是不能实例化的。是用集合类对象调用自己的iterator方法来生成一个Iterator对象2.迭代器Iterator有3个方法boolean hasNext()如果仍有元素可以迭代(用来判断当前指针指向的下一位置是否还有元素),有返回trueE next() 返回迭代的下一个元素(指针指向下一位置,并返回指向的元素)原创 2016-06-19 18:02:11 · 1937 阅读 · 0 评论 -
java LinkedList模拟堆栈
import java.util.LinkedList;import java.util.List;import java.util.Scanner;import java.util.Stack;/* * LinkedList模拟堆栈 */class stackList{ private LinkedList stack; public stackList() { stac原创 2016-06-20 00:20:54 · 406 阅读 · 0 评论 -
java 数据结构容器之HashSet
HashSet哈希表(1)由于是实现set接口的类,所以它的元素不能重复(1)它包含的元素是无序的(2)哈希表访问元素不是按线性表通过下标进行访问,而是根据哈希码来存取集合中的元素。 哈希集合是在元素的存储位置和值间建立一个特定的对应关系f,使每一个元素都有一个唯一的位置与它对应。 因而在查找表中,只需根据元素k的值,计算f(K)的值,如果元素原创 2016-06-20 11:25:27 · 450 阅读 · 1 评论 -
java泛型反射总结
引入: 在需求中,数据库有两张表user,admin。我们要查询里面的id,name等信息通常都是写两个dao,然后分别给每个查询字段写一套方法。 然而其实查询这些字段的方法都大同小异,所以产生了一个更好的解决办法,就是写一个通用的dao,然后把相同的方法写在通用的dao(genericDao)里,然后然实体dao去继 承它。 下面通过模拟 贴原创 2016-08-24 20:21:55 · 479 阅读 · 0 评论 -
深入学习理解java-ThreadLocal
导读 首先,ThreadLocal 不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程中访问的是不同的对象。另外,说ThreadLocal使得各线程能够保持各自独立的一个对象,并不是通过ThreadLocal.set()来实现的,而是通过每个线程中的new 对象转载 2017-02-24 13:52:45 · 255 阅读 · 0 评论 -
java正则表达式
java中要使用正则表达式首先要有一个正则表达式的表现形式,即Pattern。通俗易懂的说法就要使用正则表达式必须有一个前提:就是必须首先将正则表达式编译为此类的实例。然后使用它的matcher方法与要验证的字符序列进行匹配,它将返回一个Matcher匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:matches 方法尝试将整个输入序列与该模式匹配。这个相当于在原创 2017-03-04 22:17:32 · 291 阅读 · 0 评论 -
Hash算法冲突解决方法分析
看了ConcurrentHashMap的实现, 使用的是拉链法.虽然我们不希望发生冲突,但实际上发生冲突的可能性仍是存在的。当关键字值域远大于哈希表的长度,而且事先并不知道关键字的具体取值时。冲突就难免会发 生。另外,当关键字的实际取值大于哈希表的长度时,而且表中已装满了记录,如果插入一个新记录,不仅发生冲突,而且还会发生溢出。因此,处理冲突和溢出是 哈希技术中的两个重要问题。1、转载 2017-04-30 14:23:30 · 297 阅读 · 0 评论 -
Java finalize方法使用
《JAVA编程思想》:Java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。 (1).对象不一定会被回收。 (2).垃圾回收不是析构函数。 (3).垃圾回收只与内存有关。 (4).垃圾回收和finalize()都是靠不住的,只要JVM还没有快到耗尽内存的地步,它转载 2017-04-30 23:36:11 · 288 阅读 · 0 评论 -
理解Java中HashMap的工作原理
Java中的HashMap使用散列来高效的查找和存储值。HashMap内部使用Map.Entry的形式来保存key和value, 使用put(key,value)方法存储值,使用get(key)方法查找值。理解hashCode()Java中的hashCode()方法,是顶层对象Object中的方法,因此Java中所有的对象都会带有hashCode()方法。 在各种最佳实践中,都原创 2017-04-23 00:40:17 · 505 阅读 · 0 评论 -
Java 内存管理白皮书,读完它,java 内存管理的问题完全 NO Problem!
说明 要学习Java或者任意一门技术,我觉得最好的是从官网的资料开始学习。官网所给出的资料总是最权威最知道来龙去脉的。而Java中间,垃圾回收与内存管理是Java中非常重要的一部分。《Hotspot内存管理白皮书》是了解Java垃圾收集器最权威的文档。相比于其他的一些所谓翻译文章,本文的翻译更加准确,通顺和全面。在翻译的过程中如果出现一些问题,如果出现问题或者表述不清楚的地方,可以直接在评论转载 2017-04-25 13:04:50 · 857 阅读 · 0 评论 -
终止线程的2种方法。标记法和中断
引言在原来的jdk版本中: 提供了暂停,恢复,终止线程的方法,分别是suspend(),resume(),stop(); 但是它们都存在缺陷,比如暂停suspend()方法在调用后,线程不会释放资源(比如:锁),而是占有着资源进入睡眠状态。stop()方法在调用后,通常不能保证线程的资源正常的释放,因为他根本没有给予线程释放资源的机会。 正因为这些方法带来的不良影响,使得它们被废除。替代然而聪原创 2017-07-27 19:21:34 · 4520 阅读 · 1 评论