Java
Java
Fighting_初心
种一棵树最好的时间是十年前,其次是现在。
展开
-
Java进阶之动态代理
动态代理原创 2020-02-17 10:57:17 · 154 阅读 · 0 评论 -
Java进阶之反射
反射机制详解原创 2020-02-16 22:26:37 · 261 阅读 · 0 评论 -
Java进阶之函数式编程
一、什么是函数式编程 函数式编程是一种编程范式,不在于具体的语言,具体的API。它属于结构化编程的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。 在函数式编程中,一个变量一旦被赋值,是不可改变的。没有可变的变量,意味着没有状态。而中间状态是导致软件难以管理的一个重要原因,尤其在并发状态下,稍有不慎,中间状态的存在很容易导致问题。没有中间状态,...原创 2020-01-15 21:03:47 · 426 阅读 · 0 评论 -
Java多线程编程(三)——volatile详解
volatile关键字和synchronized一样都能够保证线程的同步。 Java语言规范第三版中对volatile的定义如下: java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,...原创 2020-01-14 12:19:54 · 490 阅读 · 0 评论 -
Java基础之Comparable接口的用法
Java中的排序是由Comparable和Comparator这两个接口来提供的。 Comparable表示可被排序的,实现该接口的类的对象自动拥有排序功能。Comparator则表示一个比较器,实现了该接口的的类的对象是一个针对目标类的对象定义的比较器,一般情况,这个比较器将作为一个参数进行传递。(一)Comparable ...原创 2020-01-10 21:55:02 · 3169 阅读 · 0 评论 -
Java基础之Cloneable接口的用法
1. Cloneable接口的作用Cloneable是标记型的接口,它们内部都没有方法和属性,实现 Cloneable来表示该对象能被克隆,能使用Object.clone()方法。如果没有实现 Cloneable的类对象调用clone()就会抛出CloneNotSupportedException。2. 克隆(拷贝)的分类 浅克隆(浅拷贝)(shallow...原创 2020-01-10 21:23:15 · 1643 阅读 · 0 评论 -
Java中nextLine()和next()的区别
用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine():next() 一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。 简单地说,next()查找并返...原创 2018-04-13 20:20:55 · 213 阅读 · 0 评论 -
Java的ArrayList用法
一、ArrayList的添加方法1. 1方法1:依次按照顺序向ArrayList中添加数据。用法:将a添加到list中list.add("a");#例子:2. 2方法2:在第N个数据后面添加一个数据用法:在第1个元素后面添加Elist.add(1, "E");注意:ArrayList中必须有足够多的数据,例如ArrayList中没有任何数据,这个时候使用arraylist.add(1,...原创 2018-04-13 19:54:36 · 52526 阅读 · 5 评论 -
Java中的split函数
Java中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回;例如:String str="1234@abc"; String[] a = str.split("@"); System.out.println("处理结果: "+a[0]+","+a[1]); //输出的是: 处理结果: 1234,abc 对某些特殊字符,如果字符(串)正好是...原创 2018-04-13 19:44:00 · 352 阅读 · 0 评论 -
Java多线程编程(二)——synchronized详解
对于多个线程同时访问同一个变量(即共享数据的情况),例如实现投票功能的软件时,多个线程可以同时处理同一个人的票数。那么一定会出现非线程安全的问题。 所谓“非线程安全”,主要是指多个线程对同一个对象中的同一个实例变量进行操作时会出现值被更改、值不同步的情况,进而影响程序的执行流程。通常时我们会采取synchronized来解决。synchronized可以在任意对象及方...原创 2018-04-15 12:00:58 · 367 阅读 · 0 评论 -
Java多线程编程(一)——Thread中的start和run方法比较
一、start() 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的 start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法,这里方法 run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。publ...原创 2018-04-14 11:41:44 · 301 阅读 · 0 评论