
Java
文章平均质量分 68
水墨之白
悟已往之不谏,知来者之可追!
展开
-
深入理解String
一、String知识总结String被final修饰,不可变对象,也就是不能被继承String是通过Char数组来保存字符串的String提供的操作字符串方法,比如subString,replace,concat,连接符,都不是在原有字符串操作,而是重新生成了一个新的对象String对象重写了equals和hashCode方法,所以equals比较的是字符的值,并不是内存地址为了优化S...原创 2019-11-26 00:44:19 · 395 阅读 · 0 评论 -
Java内部类详解
内部类介绍在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类为什么需要内部类?内部类继承自某个类或实现某个接口,内部类方法可以访问该类定义所在作用域中的数据,包括被 private 修饰的私有数据,这为外部类的访问提供了窗口内部类可以实现 java 单继承的缺陷我们想要定义一个回调函数,且只在一个地方使用,我们可以选择使用匿名内部类来实现,没必要再定义一个...原创 2019-10-19 18:55:17 · 276 阅读 · 0 评论 -
Java对象创建过程:静态代码块,构造代码块,构造函数执行顺序
一、普通代码块普通代码块(局部代码快)是在方法名后面用 {} 括起来的代码段,不能够单独存在,必须要紧跟在方法名后面且必须使用方法名调用它,作用是限定变量的生命周期和提高效率二、构造代码块构造代码块是在类中方法外用 {} 括起来的代码,作用是把所有构造方法中相同的内容抽取出来,将来在调用构造方法的时候会去自动调用构造代码块,构造代码快优先于构造方法构造代码块的作用是给对象进行初始化构造代...原创 2019-10-17 20:06:08 · 1435 阅读 · 0 评论 -
Java值传递与引用传递
结论:在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数,方法并不能修改传递给它的任何参数变量的内容。所以Java是按值传递如果不能理解,看下面的分析:基本数据类型public class Test1 { public static void main(String[] args) { int n = 3; System.ou...原创 2019-10-16 19:07:42 · 204 阅读 · 0 评论 -
Java流的总结
一、流的简介流是用来读写文件数据的,在Java程序中,对于数据的输入,输出操作以”流“的方式进行。文件是硬盘上的一块存储空间,Java里面的类File是对其的抽象,封装了文件名。类比一下水流,文件可以看成小桶。水从小桶流出,就是输出,反之就是输入。输入与输出都是站在程序角度而言。二、流的分类字符流与字节流字节流:InputStream OutputStream字符流:Rea...原创 2018-12-08 10:46:38 · 305 阅读 · 0 评论 -
BigDecimal保留小数和除法报错问题
public static void main(String[] args) { BigDecimal a = BigDecimal.valueOf(10.522); BigDecimal b = BigDecimal.valueOf(3.111); System.out.println(a.setScale(0, BigDecimal.ROUND...原创 2018-12-14 17:36:34 · 1804 阅读 · 0 评论 -
Java String,int相互转化
int转Stringint a:a + “”String.valueOf(a)Interger.toString(a)一般使用以上几种方法进行转化第一种方法效率不好,java源码对’+’运算符进行了重载,使用StringBuilder或者StringBuffer来实现,而new StringBuilder和StringBuilder.toString操作会影响转化效率。并且这个方法...原创 2019-04-22 19:51:36 · 14865 阅读 · 0 评论 -
Java常用关键字final,static,this,super总结
final,static,this,super 关键字总结final 关键字static 关键字this 关键字super 关键字参考static 关键字详解static 关键字主要有以下四种使用场景修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块)...原创 2019-05-28 14:44:15 · 497 阅读 · 0 评论 -
Java正则表达式基本用法
一、正则表达式简介正则表达式是使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。爬虫中解析html可以使用正则来方便的提取信息二、正则表达式匹配规则模式描述\w匹配字母、数字、下划线\W匹配非字母、数字、下划线\s匹配任意空白字符,相当于[\t\n\r\f]\S匹配任意非空字符\d匹配任意数字,相当于[0-9]\D匹配非数...原创 2019-06-29 14:42:21 · 23234 阅读 · 1 评论 -
Java异常机制
一、异常简介异常本质上是程序上的错误,包括程序逻辑错误和系统错误。通过异常机制,我们可以更好地提升程序的健壮性二、异常体系结构 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类,所有异常类型都是内置类Throwable的子类。Throwable两个不同的分支Error类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执...原创 2019-10-10 16:29:25 · 298 阅读 · 0 评论 -
List集合遍历
三种情况:执行for循环的时候: 1、list为null时空指针异常2、list不为空,但是list.size()=0时,不执行for循环内代码块3、list.size()>0,执行for循环,但循环的对象可能为nullpublic class Test { public static void main(String[] args) { Lis...原创 2018-09-01 15:46:03 · 502 阅读 · 0 评论 -
随机数Random
Random rd = new Random(10);int s = rd.nextInt(20);这里的10是一个种子,20才是随机数,种子不变的话产生的随机数相同,这里不管执行几次随机数都是13 这是一种伪随机规则,就是有规则的随机 public Random() { this(seedUniquifier() ^ System.nanoTime()); ...原创 2018-07-24 21:27:14 · 515 阅读 · 0 评论 -
泛型的基本介绍
1.为什么需要泛型?泛型是什么?public class WhyGeneric { public static void main(String[] args) { List list = new ArrayList(); list.add("aaa"); list.add(111); for (int i = 0; i ...原创 2018-07-12 22:10:16 · 217 阅读 · 0 评论 -
java提高篇——ArrayList
1. ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。2. ArrayList源码分析底层是由数组实现的;ArrayList list = new ArrayList(); 创建一个对象默认会创建一个容量为10的数组,注意这个是在调用ArrayList的add方法是创...原创 2018-02-19 23:00:05 · 277 阅读 · 0 评论 -
Vector
Arraylist与Vector的区别是什么?1、Vector是线程安全的,ArrayList不是线程安全的。2、ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展1倍。只要是关键性的操作(增加,删除,查找),方法前面都加了synchronized关键字,来保证线程的安全性。当执行synchronized修饰的方法前,系统会对该方法加一把锁,方法执行完成后释放锁,加...原创 2018-02-20 10:32:01 · 269 阅读 · 0 评论 -
LinkedList
相比较ArrayList,它的查找效率较差,但是增删效率比较好!1. LinkedList的定义从这段代码中我们可以清晰地看出LinkedList继承AbstractSequentialList,实现List、Deque、Cloneable、Serializable。其中AbstractSequentialList提供了 List 接口的骨干实现,从而最大限度地减少了实现受“连续访问”数据存储...原创 2018-02-20 16:46:15 · 294 阅读 · 0 评论 -
集合各实现类的底层实现原理
对集合底层于原理的总结:http://blog.youkuaiyun.com/qq_25868207/article/details/55259978链接若失效可复制该链接去地址栏,即可正确打开原创 2018-03-01 19:31:10 · 528 阅读 · 0 评论