下面代码创建了几个String对象

String s1 = "hello"; String s2 = s1.substring(2,3); String s3 = s1.toString(); String s4 = new StringBuffer(s1).toString(); 明确一下几点会对做这道...

2017-07-06 09:44:50

阅读数 574

评论数 1

数组定义的三种方式

// 数组定义的三种方式       // 第一种       int [] a = newint[5]; //    a[0] = 10;             // 第二种       int [] c = newint[]{1,2,3};       // 第三...

2017-06-26 09:24:02

阅读数 37705

评论数 0

判断是否是质数

判断一个数是否是质数: publicclass IsZhiShu {    publicstaticvoid main(String[] args) {       judge(1);    }      publicstaticvoid judge(inta){       in...

2017-06-26 09:21:55

阅读数 294

评论数 0

25岁就死了,75才埋,程序员们的中年危机:有点懵

25岁就死了,75才埋,程序员们的中年危机:有点懵 转载自:http://www.techug.com/post/coders-midlife-crisis.html 科技公司裁撤中年技术员工的传闻,每隔一段时间就会在网上弥漫、发酵。程序员们有点懵。 十年前,当他们踏着高考重...

2017-06-21 20:18:53

阅读数 1654

评论数 2

Enumation和Iterator的区别

在之前的集合中我们使用了两种不同的迭代器分别对不同的结合进行了遍历,分别是Enumation迭代器和Iterator迭代器。 二者有什么区别呢? 首先二者都是java.util工具包下的接口,二者的代码如下: Enumeration:   public int...

2017-06-07 12:19:14

阅读数 651

评论数 0

Hashtable和HashMap分析

转载自:http://www.cnblogs.com/xinzhao/p/5644175.html 特别喜欢签名的那句话: As a programmer, I hate to use things I don't understand. 作为一个编程者,我希望对使用的东西知根知底。 ...

2017-06-07 10:43:30

阅读数 192

评论数 0

局部内部类访问局部变量

为什么局部内部类对象访问局部变量时要加final关键字? 说到底是因为生命周期的不同。 局部内部类需要GC调用才能回收,而局部变量在对应的栈帧出栈即被抛弃。 因此有可能还存在的局部内部类对象去访问一个根本已经不存在的局部变量,这是不被允许的情况。 因此,无奈之下,只能加上final关键字来...

2017-06-07 10:30:34

阅读数 364

评论数 0

ThreadLocal线程本地变量

package cn.liz.threaddemo; // ThreadLocal 与 绑定 解决同一个线程内的数据共享问题 // 将数据拷贝一份到线程中 ,因此 线程 之间的数据互不影响 public class ThreadLocalTest { private static T...

2017-06-02 23:38:17

阅读数 148

评论数 0

单例模式--锁优化

package cn.liz.threaddemo; public class Single { private Single(){ } private static Single single; // 如果不加锁 ,那么 结果得到的对象不是用一个 public static ...

2017-06-02 23:12:58

阅读数 341

评论数 0

线程--死锁

当我们为了线程安全而加锁的时候,可能一不注意就造成了死锁。 比如下面这样: package cn.liz.threaddemo; public class ThreadDeadlock{ public static void main(String[] args) { Obje...

2017-06-02 22:49:22

阅读数 154

评论数 0

什么是线程

// 线程总结: /* * 三种创建方式: * 什么是线程 : 程序的多个执行路径 ,改变了程序顺序执行的特点,可以多条线共同执行,实际是模拟的并行 * 那么既然是并发,就存在线程安全问题,即同时访问同一份数据 * 因此就要保证要访问的数据的安全性 * 涉及到 锁!!! * sync...

2017-06-02 22:39:09

阅读数 142

评论数 0

单例模式--静态内部类

静态内部类是一个很好的实现单例的方式: 看代码: package cn.liz.syn; public class StaticInner { // 私有化 构造器 private StaticInner(){ } // 私有的静态内部类 private stati...

2017-06-02 20:17:20

阅读数 158

评论数 0

懒汉式

懒汉式: 不在类加载的时候创建对象,什么时候调用获取对象的方法,什么时候再返回该类的对象。节省空间。 为了防止多线程下创建该类的多个对象,要加锁。 我们采用的是双重检测锁: package cn.liz.syn; public class FullSingleTon { //私有化构造...

2017-06-02 20:08:54

阅读数 296

评论数 0

单例模式--饿汉式

单例模式就是保证在程序中只有一个该类的对象: 饿汉式:类加载的时候就创建。 代码体现: package cn.liz.syn; public class SingleTonPattern { // 私有 构造器 禁止外部实例化对象 private SingleTonPattern(){...

2017-06-02 19:57:45

阅读数 634

评论数 0

线程的小问题

看一个问题,匿名内部类和重写的问题: public class Test01 { public static void main(String[] args) { new Thread(new Runnable() { @Override public void run()...

2017-06-02 19:44:18

阅读数 112

评论数 0

线程的三种创建方式

public class Web12306 { public static void main(String[] args) throws InterruptedException, ExecutionException { // 方式 1 继承Thread类,重写run方法 T...

2017-06-02 17:19:31

阅读数 164

评论数 0

java集合继承关系图

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,因为内部实现了自动扩容;数组中可以存储基本数据类型,集合只能存储对象。集合如果再存放对象的时候存放的是基本类型,那么...

2017-06-02 10:22:39

阅读数 637

评论数 0

Vector与Stack容器

LinkedList 底层是链表 Vector底层也是数组,和ArrayList一样,不同的是Vector是线程安全的,Vector有自己独特的遍历方式。 Vector vector = new Vector(); vector.add("周杰伦"); vector.a...

2017-06-02 09:59:02

阅读数 167

评论数 0

TreeSet排序规则

TreeSet在存放对象元素的时候就会排序。因此在存放完之后,对结合中的元素进行修改,那么修改也不会影响原先的排序。如果存放进去的对象没有实现 Comparable接口就会抛出异常。直接上代码: public class MusicBoxTest02 { public static void ...

2017-06-01 20:47:10

阅读数 194

评论数 0

HashSet的去重问题

HashSet的去重问题: 我们知道HashSet在存放对象的时候会判断对象时候是同一对象。 默认引用类型比较的是地址值,如果地址值相同,那么这是一模一样的对象,那么判断肯定是同一对象,就不再重复的往里放。 如果对象重写了hashcode和equals方法,就比较这二者是否相等。 如果hashc...

2017-06-01 20:37:30

阅读数 5442

评论数 0

提示
确定要删除当前文章?
取消 删除