摘要: HashMap和HashTable有何不同? 线程安全: HashTable 中的方法是同步的,而HashMap中的方法在默认情况下是非同步的。在多线程并发的环境下,可以直接使用HashTable,但是要使用HashMap的话就要自己增加同步处理了。 继承关系: HashTable是基于陈旧的Dic 阅读全文
posted @ 2019-08-25 18:38 陆佳骅的博客 阅读(222) 评论(0) 推荐(0) 编辑
摘要: Vector是java.util包中的一个类。 SynchronizedList是java.util.Collections中的一个静态内部类。 在多线程的场景中可以直接使用Vector类,也可以使用Collections.synchronizedList(List list)方法来返回一个线程安全 阅读全文
posted @ 2019-08-25 18:31 陆佳骅的博客 阅读(1430) 评论(1) 推荐(1) 编辑
摘要: 名单主要有数组列表,链表与矢量几种实现。 这三者都实现了List接口,使用方式也很相似,主要区别在于因为实现方式的不同,所以对不同的操作具有不同的效率。 ArrayList是一个可改变大小的数组。当更多的元素加入到ArrayList中时,其大小将会动态地增长。内部的元素可以直接通过get与set方法 阅读全文
posted @ 2019-08-25 18:24 陆佳骅的博客 阅读(6242) 评论(0) 推荐(1) 编辑
摘要: transient、instanceof、volatile、synchronized、final、static、const 原理及用法 阅读全文
posted @ 2019-08-25 18:17 陆佳骅的博客 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 字符串池、常量池(运行时常量池、Class常量池)、intern() 阅读全文
posted @ 2019-08-25 18:16 陆佳骅的博客 阅读(394) 评论(0) 推荐(0) 编辑
摘要: Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进。到目前为止切换支持这样几种数据类型:byte short int char String。但是,作为一个程序员我们不仅要知道他有多么好用,还要知道它是如何实现的,开关对整型的支持是怎么实现的呢?对字符型是怎么 阅读全文
posted @ 2019-08-25 18:14 陆佳骅的博客 阅读(1403) 评论(0) 推荐(1) 编辑
摘要: 我们有三种方式将一个int类型的变量变成呢过String类型,那么他们有什么区别? 第三行和第四行没有任何区别,因为String.valueOf(i)也是调用Integer.toString(i)来实现的。 第二行代码其实是String i1 = (new StringBuilder()).appe 阅读全文
posted @ 2019-08-25 18:01 陆佳骅的博客 阅读(1922) 评论(0) 推荐(0) 编辑
摘要: 字符串,是Java中最常用的一个数据类型了。 本文,也是对于Java中字符串相关知识的一个补充,主要来介绍一下字符串拼接相关的知识。本文基于jdk1.8.0_181。 字符串拼接 字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起。 我们都知道,String是Java中一 阅读全文
posted @ 2019-08-25 17:59 陆佳骅的博客 阅读(31679) 评论(2) 推荐(5) 编辑
摘要: String s =“a”+“b”,编译器会进行常量折叠(因为两个都是编译期常量,编译期可知),即变成String s =“ab” 对于能够进行优化的(String s =“a”+变量等)用StringBuilder的append()方法替代,最后调用toString()方法(底层就是一个新的Str 阅读全文
posted @ 2019-08-25 17:50 陆佳骅的博客 阅读(676) 评论(0) 推荐(0) 编辑
摘要: replaceFirst、replaceAll、replace区别 阅读全文
posted @ 2019-08-25 17:49 陆佳骅的博客 阅读(189) 评论(0) 推荐(0) 编辑
摘要: substring(int beginIndex, int endIndex)方法在不同版本的JDK中的实现是不同的。了解他们的区别可以帮助你更好的使用他。为简单起见,后文中用substring()代表substring(int beginIndex, int endIndex)方法。 substr 阅读全文
posted @ 2019-08-25 17:47 陆佳骅的博客 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 定义一个字符串 s中保存了字符串对象的引用。下面的箭头可以理解为“存储他的引用”。 使用变量来赋值变量 S2保存了相同的引用值,因为他们代表同一个对象。 字符串连接 一旦一个字符串对象在内存(堆)中被创建出来,他就无法被修改。特别要注意的是,字符串类的所有方法都没有改变字符串本身的值,都是返回了一个 阅读全文
posted @ 2019-08-25 17:40 陆佳骅的博客 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 本文将介绍Java中Integer的缓存相关知识。这是在Java 5中引入的一个有助于节省内存,提高性能的功能。首先看一个使用Integer的示例代码,从中学习其缓存行为。接着我们将为为什么这么实现以及他到底是如何实现的。你能猜出下面的的Java程序的输出结果吗。如果你的结果和真正结果不一样,那么你 阅读全文
posted @ 2019-08-25 17:27 陆佳骅的博客 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型。它们是我们编程中使用最频繁的类型。 Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化。 Java基本类型共有八种,基本类型可以分为三类: 字符类型char 布尔类型bool 阅读全文
posted @ 2019-08-25 17:21 陆佳骅的博客 阅读(175) 评论(0) 推荐(0) 编辑
摘要: Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 byte: byte 数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是 -128(-2^7); 最大值是 127(2^7-1); 默认值是 0; byte 类型用在大型数组中节约空间, 阅读全文
posted @ 2019-08-25 15:55 陆佳骅的博客 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 对于成员变量和方法的作用域,公共,保护,私有以及不写之间的区别。 public:表明该成员变量或者方法是对所有类或者对象都是可见的,所有类或者对象都可以直接访问 私人:表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外其他类或者对象都没有访问权限子类也没有访问权限。 保护:表明成员 阅读全文
posted @ 2019-08-25 15:36 陆佳骅的博客 阅读(573) 评论(0) 推荐(0) 编辑
摘要: Java的中共有三种变量,分别是类变量,成员变量和局部变量。他们分别存放在JVM的方法区,堆内存和栈内存中。 / ** * @author win * / public class Variables { / ** *类变量 * / private static int a; / ** *成员变量 阅读全文
posted @ 2019-08-25 15:32 陆佳骅的博客 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 构造函数,是一种特殊的方法。 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。 特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载。 构造函数跟一般的实例方法十分相似;但是与其它方法不同,构造器没有 阅读全文
posted @ 2019-08-25 15:30 陆佳骅的博客 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 面向对象的复用技术 复用性是面向对象技术带来的很棒的潜在好处之一。如果运用的好的话可以帮助我们节省很多开发时间,提升开发效率。但是,如果被滥用那么就可能产生很多难以维护的代码。 作为一门面向对象开发的语言,代码复用是Java引人注意的功能之一。Java代码的复用有继承,组合以及代理三种具体的表现形式 阅读全文
posted @ 2019-08-25 15:22 陆佳骅的博客 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 什么是多态 多态的概念呢比较简单,就是同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 如果按照这个概念来定义的话,那么多态应该是一种运行期的状态。 为了实现运行期的多态,或者说是动态绑定,需要满足三个条件。 即有类继承或者接口实现、子类要重写父类的方法、父类的引用指向子类的对象。 阅读全文
posted @ 2019-08-25 13:10 陆佳骅的博客 阅读(1464) 评论(0) 推荐(1) 编辑