
Java 学习笔记
JackZhangNJU
未来的路还很长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java 学习笔记01 移位运算符
Java 的基本数据结构如下图: 注意Java中没有无符号数据,也就是说没有无符号的整形数据,这一点一定要注意。这个在移位操作要注意,java中有三种移位运算符,如下num 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以0补齐假如要统计二进制数据,注意使用无原创 2017-09-21 22:18:52 · 275 阅读 · 0 评论 -
当编程题没有AC的时候应该怎么办?
当在做编程题没有AC的时候,基本上出现80%的时候可能遇到了哪些问题呢?数据溢出这个分为两组情况,比如加法乘法、除法导致的int溢出,这个主意使用变量的类型,这个属于极大值的情况还有极小值的情况,比如C++的size()函数返回的是无符号数字,这个时候a.size()-1就会出错,这个情况也要注意特殊case的考虑这个就是一些极端case忽略了,这个时候可能需要特殊处理...原创 2018-03-03 11:18:13 · 2046 阅读 · 0 评论 -
编写高质量代码改善Java程序的151个建议--总结摘抄
第一章 Java开发中通用的方法和准则建议1:不要在常量和变量中出现易混淆的字母; (i、l、1;o、0等)。建议2:莫让常量蜕变成变量; (代码运行工程中不要改变常量值)。建议3:三元操作符的类型务必一致; (不一致会导致自动类型转换,类型提升int->float->double等)。建议4:避免带有变长参数的方法重载; (变长参数的方法重载之后可能会包含原方法)。原创 2017-10-03 16:33:16 · 661 阅读 · 0 评论 -
Java学习笔记 15 细节处理 asList + subList
这篇介绍了部分实际可能遇到的编程细节。请为集合指定初始容量集合是我们在Java编程中使用非常广泛的,Collection的初始容量也显得异常重要。所以:对于已知的情景,请为集合指定初始容量。asList的缺陷###2.1避免使用基本数据类型数组转换为列表使用8个基本类型数组转换为列表时会存在一个比较有味的缺陷。asList接受的参数是一个泛型的变长参数,我们知道基本数据类型原创 2017-10-03 16:08:12 · 326 阅读 · 0 评论 -
Java学习笔记 14 快速失败fail-fast机制
一、快速失败fail-fast是什么?在JDK的Collection中我们时常会看到类似于这样的话:例如,ArrayList:注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificationException。因此,为提高这类迭代器的正确性而编写一个依赖于此异常的程序是错原创 2017-10-03 15:31:10 · 339 阅读 · 0 评论 -
Java学习笔记 13 Java 集合 Collection 基本介绍
本篇博客主要就是介绍Java中集合大家族的成员,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList、TreeMap等等!一、Collection接口Collection接口是最基本的集合接口,它不提供直接的实现,Java SDK提供的类都是继承自Collectio原创 2017-10-03 13:15:19 · 281 阅读 · 0 评论 -
Java学习笔记 12 异常处理
下图是Java的异常体系 自定义异常Java确实给我们提供了非常多的异常,但是异常体系是不可能预见所有的希望加以报告的错误,所以Java允许我们自定义异常来表现程序中可能会遇到的特定问题,总之就是一句话:我们不必拘泥于Java中已有的异常类型。Java自定义异常的使用要经历如下四个步骤: 1、定义一个类继承Throwable或其子类。2、添加构造方法(当然也可以不用添加,原创 2017-10-03 13:02:04 · 283 阅读 · 0 评论 -
Java学习笔记 11 instanceof 、equal 和 == 的联系和区别
本篇博文主要是对instanceof 、equals和==做的一个对比和联系instanceofJava 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法:result = object instanceof class参数:Result:布尔类型。原创 2017-10-03 11:30:54 · 678 阅读 · 0 评论 -
Java学习笔记 10 各种各样的代码块
他原创 2017-10-03 11:06:45 · 329 阅读 · 0 评论 -
Java学习笔记 09 Java实现多继承的方法:接口 + 内部类
多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。 Java提供了两种方式让我们曲折来实现多重继承:接口和内部类。一、 接口在介绍接口和抽象类的时候了解到子类只能继承一个父类,也就是说只能存在单一继承,但是却可以实现多个接口,这就为我们实现多重继承做了铺垫。对于接口而已,有时候它所表现的不仅仅只是一个更纯粹的抽象类原创 2017-10-03 10:53:22 · 481 阅读 · 0 评论 -
Java学习笔记 08 内部类的使用
一、为什么要使用内部类其实使用内部类最大的优点就在于它能够非常好的解决多重继承的问题,但是如果我们不需要解决多重继承问题,那么我们自然可以使用其他的编码方式,但是使用内部类还能够为我们带来如下特性: 1、内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。2、在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。3、创建内部类对原创 2017-10-03 10:25:07 · 286 阅读 · 0 评论 -
Java学习笔记 06 Static详解
一、 static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。同时被static修饰的成员变量和成员方法是独立于该类的,它不依赖于某个特定的实例变量,也就是说它被该类的所有实例共享。所有实例的引用都指向同一个地方,任何一个实例对原创 2017-10-02 21:55:28 · 295 阅读 · 0 评论 -
Java学习笔记 07 Iterator和Enumeration的联系和区别
Iterator接口的功能是遍历Collection容器中的元素。方法:boolean hasNext():用来判断当前游标后面是否还存在元素,如果存在就返回true,不存在就返回false。Object next():先返回当前游标右边的元素,然后游标后移一个位置。void remove():删除最近返回的元素。Enumeration和Iterator一样都是遍历集合。原创 2017-10-02 21:24:32 · 362 阅读 · 0 评论 -
Java 学习笔记 05 HashMap 和 Hashtable 区别与联系
HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。Has原创 2017-10-02 21:17:41 · 290 阅读 · 0 评论 -
Java 学习笔记 04 String 、StringBuilder 和 StringBuffer区别和联系
在这篇博客各个字符串类的成员函数就不介绍了,我主要介绍区别和联系。1.可变与不可变String类,字符串常量中使用字符数组保存字符串,有“final”修饰符,所以可以知道string对象是不可变的。StringBuilder与StringBuffer是字符串可变的类,都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组原创 2017-10-02 21:05:10 · 306 阅读 · 0 评论 -
Java 学习笔记 03 杂乱笔记
1,Java通过new申请的内存的默认值是0,比如下面的数组b,b的元素默认值是0,要是double的话就是0.0,bool的话就是false。int[] b=new int[5];2,byte b=1,c=2; byte f=b+c; 会报错,因为b+c的结果是int类型的,因为在Java中涉及到byte、char、short的数据类型一般要转换为int类型去做运算,但是 b+=c,b原创 2017-10-02 21:01:40 · 305 阅读 · 0 评论 -
Java学习笔记 02 Java Arrays 类的各种用法
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:1,给数组赋值:通过fill方法;Arrays.fill(array, 5);2,对数组排序:通过sort方法,按升序;Arrays.sort(arr);3,比较数组:通过equals方法比较数组中元素值是否相等;Int arr1 = {1,2,3,4};Int arr2 = {原创 2017-10-02 20:49:41 · 259 阅读 · 0 评论 -
关于Java学习笔记
这些博客内容纯属我个人在学习Java,同时在准备面试过程中做得笔记,要是有错误的地方欢迎大家指正,不喜勿喷!!!!!原创 2017-09-01 22:10:33 · 295 阅读 · 0 评论 -
LeetCode上一道经典的面试题-O(1)实现LRU Cache
参考这个博客这里写链接内容 思路: 每次数据项被查询到时,都将此数据项移动到链表头部(O(1)的时间复杂度) 这样,在进行过多次查找操作后,最近被使用过的内容就向链表的头移动,而没有被使用的内容就向链表的后面移动。 当需要替换时,链表最后的位置就是最近最少被使用的数据项,我们只需要将最新的数据项放在链表头部,当Cache满时,淘汰链表最后的位置就是了。 还有这个博客简单的LRU Ca...原创 2018-08-09 15:42:12 · 848 阅读 · 0 评论