
java基础
阳光石头
还是google好用
展开
-
IDEA中比较骚的操作技巧
IDEA 有个很牛逼的功能,那就是后缀补全(不是自动补全),很多人竟然不知道这个操作,还在手动敲代码。这个功能可以使用代码补全来模板式地补全语句,如遍历循环语句(for、foreach)、使用 String.format() 包裹一个字符串、使用类型转化包裹一个表达式、根据判(非)空或者其它判别语句生成 if 语句、用 instanceOf 生成分支判断语句等。使用的方式也很简单,就是在一个表达式后按下点号 . ,然后输入一些提示或者在列表中选择一个候选项,常见的候选项下面会给出 GIF 演示。转载 2021-01-30 22:47:40 · 297 阅读 · 0 评论 -
几张图轻松理解String.intern()
在翻《深入理解Java虚拟机》的书时,又看到了2-7的 String.intern()返回引用的测试。 其实要搞明白String.intern(),我总结了下面几条规则: 一、new String都是在堆上创建字符串对象。当调用 intern() 方法时,编译器会将字符串添加到常量池中(stringTable维护),并返回指向该常量的引用。 二、通过字面量赋值创建字符串(如:String str=...转载 2018-05-03 11:30:46 · 165 阅读 · 0 评论 -
Java-使用IO流对大文件进行分割和分割后的合并
有的时候我们想要操作的文件很大,比如:我们想要上传一个大文件,但是受到上传文件大小的限制,无法上传,这时我们可以将一个大的文件分割成若干个小文件进行操作,然后再把小文件还原成源文件。分割后的每个小文件的类型可以自己定义。以下是我编写的一个大文件的分割和合并的代码:[java] view plain copypackage com.ly转载 2017-05-05 11:27:28 · 1534 阅读 · 0 评论 -
Java NIO:浅析I/O模型
也许很多朋友在学习NIO的时候都会感觉有点吃力,对里面的很多概念都感觉不是那么明朗。在进入Java NIO编程之前,我们今天先来讨论一些比较基础的知识:I/O模型。下面本文先从同步和异步的概念 说起,然后接着阐述了阻塞和非阻塞的区别,接着介绍了阻塞IO和非阻塞IO的区别,然后介绍了同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO设计相关的设计模式(Reactor和Pr转载 2016-06-20 10:40:31 · 231 阅读 · 0 评论 -
Java NIO:NIO概述
在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题。NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题。本文下面分别从Java NIO的几个基础概念介绍起。 以下是本文的目录大纲: 一.NIO中的几个基础概念 二.Channel 三.Buffer 四.Selector 若有不正之处,请多多谅解并转载 2016-06-20 10:41:15 · 258 阅读 · 0 评论 -
JAVA集合类总结
是否有序是否允许元素重复Collection否是List是是SetAbstractSet否否 HashSet TreeSet是(用二叉排序树)MapAbstractMap否使用key-valu转载 2015-11-18 16:43:50 · 419 阅读 · 0 评论 -
java实现深复制:clone()及序列化
[java] view plaincopyJAVA实现深复制: clone()方法及序列化 Java语言取消了指针的概念,导致了许多程序员在编程中常常忽略了对象与引用的区别。Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,常常要应用clone()方法来复制对象。比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递。以下是一个小例子:原创 2016-01-07 10:46:49 · 684 阅读 · 0 评论 -
HashMap源码解析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2016-05-09 15:22:16 · 317 阅读 · 0 评论 -
LinkedList源码解析
一、源码解析1、 LinkedList类定义2、LinkedList数据结构原理3、私有属性4、构造方法5、元素添加add()及原理6、删除数据remove()7、数据获取get()8、数据复制clone()与toArray()9、遍历数据:Iterator()二、ListItr 一、源码解析 1、 LinkedLis转载 2016-05-09 15:20:58 · 343 阅读 · 0 评论 -
Double与BigDecimal 精度问题
[1] 精确的浮点运算: 在Java里面,有时候为了保证数值的准确性需要精确的数据,先提供一个例子就可以发现问题了: Java代码 public class FloatNumberTester { public static void main(String args[]){ System.out.println(0.05+0.转载 2016-04-08 17:36:08 · 588 阅读 · 0 评论 -
Java中ArrayList和LinkedList区别
一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因转载 2016-04-07 13:40:54 · 250 阅读 · 0 评论 -
Java中getResourceAsStream的用法
首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。2. Class.getClassLoad原创 2016-01-20 15:51:15 · 704 阅读 · 0 评论