再接着上一个章节.我们来聊一下使用LinkedHashSet须要注意的地方. LinkedHashSet特点: (1)元素是有顺序的 (2)元素是不反复的 (3)底层数据结构是依照链表的结构存储的 (4)须要又一次hashcode和equals方法 样例:(我们再次改动上一章节的代码) package com.ray.ch15; import java.lang.reflect.InvocationTargetException; import java.util.LinkedHashSet;…
这一章节我们来讨论一下使用Set的各种实现须要注意的地方. Set接口的经常使用实现类有:HashSet.TreeSet,LinkedHashSet 1.HashSet 大家对于HashSet的印象都是它能够去除反复的元素,每个元素都是唯一的,可是这里面有一个前提.就是必须重写equals和hashcode方法. 大家的印象大都是以下这个: package com.ray.ch15; import java.util.HashSet; public class Test { public sta…
目录 JEP 371: Hidden Classes JEP 372: 删除 Nashorn JavaScript Engine JEP 377: 新的垃圾回收器ZGC正式上线了 JEP 378: Text Blocks 标准化 JEP 379: 新的垃圾回收器Shenandoah上线 总结 JDK 15 JAVA 15的新特性展望 伴随着2020的寒冬和新冠病毒的肆虐,JAVA迎来了久未已久的JAVA 14.自从2017年JAVA 9发布之后,JAVA的发布版本跟上了敏捷开发的步伐,小步快跑,…
JDK 15 2020/09/15 如期而至! 这个时间牛逼啊,和苹果发布会同天? OracleJDK 15 发布地址: https://www.oracle.com/java/technologies/javase/15all-relnotes.html OpenJDK 15 发布地址: https://openjdk.java.net/projects/jdk/15/ OracleJDK 和 OpenJDK 两者的区别这里不撰述了,不清楚的请点击这里进行查看. 现在的 JDK 真变成了"版本…
一,下载jdk15 官方网站: https://www.oracle.com/java/ 下载页面: https://www.oracle.com/cn/java/technologies/javase-downloads.html 如图: 点击jdk download,进入下载页面:如图: 我们选择这个包下载: jdk-15_linux-x64_bin.tar.gz 选中 同意技术许可协议, 然后点击 下载 按钮 说明:如果拿到安装包的下载地址后,也可以从服务器上直接下载: [root@blo…
Java 中的 3 个双引号 """ 是什么语法? 这是 Java 15 新出的,刷新你的认知! 一.前言 在 Java 15 的推出的时候,Text Blocks 正式转正,我叫它 "文本块" 好了,栈长也做了简单介绍,没看过的可以点击这里看下. 文本块,是一个多行字符串,它可以避免使用大多数转义符号,自动以可预测的方式格式化字符串,并让开发人员在需要时可以控制格式. 文本块最早准备在 JDK 12 添加的,但最终撤消了,然后在 JDK 13 中作为预览…
Java 15 废弃偏向锁 JDK 15已经在2020年9月15日发布,详情见 JDK 15 官方计划.其中有一项更新是废弃偏向锁,官方的详细说明在:JEP 374: Disable and Deprecate Biased Locking. 具体的说明见:JDK 15已发布,你所要知道的都在这里! 当时为什么要引入偏向锁? 偏向锁是 HotSpot 虚拟机使用的一项优化技术,能够减少无竞争锁定时的开销.偏向锁的目的是假定 monitor 一直由某个特定线程持有,直到另一个线程尝试获取它,这样就…
点赞再看,动力无限.微信搜「程序猿阿朗 」,认认真真写文章. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Java 15 在 2020 年 9 月发布,虽然不是长久支持版本,但是也带来了 14 个新功能,这些新功能中有不少是十分实用的. Java 15 官方下载:https://jdk.java.net/archive/ Java 15 官方文档:https://openjdk.java.net/projects/jdk/1…
大家好,我是DD,今天继续来学点Java的新特性! 假设有这样一个场景,我们需要做一个工具.用来自动生成项目文档,文档可以通过浏览器查看,所以最后产出物肯定是一堆html文件.为了让这些html文件更容易读,良好的格式肯定要保持,该换行的换行.该缩进的缩进. 那么,在组织最后内容的时候,你可能就会这样子来写: String html = "<html>\n" + "<body>\n"+ " <h1>Java 15 新特性…
什么是隐藏类 隐藏类,是一种不能被其他类直接使用的类.引入隐藏类的主要目的是给框架来使用,使得框架可以在运行时生成类,并通过反射间接使用它们.可能有点抽象,不要紧,下面我们通过一个例子来直观的认识它! 隐藏类案例 第一步:先创建一个普通的Java类 public class JEP371HiddenClasses { public static String hello() { return "https://www.didispace.com"; } } 第二步:编译一下,或得编译后…
这一章节我们来讨论一下对SpEl的值的运算. 1.domain 烤炉类:(不变) package com.raylee.my_new_spring.my_new_spring.ch01.topic_1_17; public class Oven { private String name = ""; private double size = 0; public double getSize() { return size; } public void setSize(double s…
简述 LinkedHashSet底层使用 LinkedHashMap 来保存所有元素,它继承自 HashSet,其所有的方法操作上又与 HashSet 相同,因此 LinkedHashSet 的实现上非常简单,只提供了四个构造方法,并通过传递一个标识参数,调用父类的构造器,底层构造一个 LinkedHashMap 来实现,在相关操作上与父类 HashSet 的操作相同,直接调用父类 HashSet 的方法 LinkedHashSet实现 因为LinkedHashSet都是调用父类的方法,在此我们…
Java中Set表示一个不包括重复元素的集合,它有HashSet,LinkedHashSet,TreeeSet三种常用实现. HashSet是Set的最常用实现,它常被用来清除重复元素. 例程: Set<String> filterSet=new HashSet<String>(); filterSet.add("b"); filterSet.add("b"); filterSet.add("c"); filterSet.…
问题?   我有一个集合,如下,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现.  面试题: ConcurrentModificationException: 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常.  产生的原因:  迭代器是依赖于集合而存在的,在判断成功后,集合的中新添加了元素,而迭代器却不知道,迭代器的内容不发生改变.所以就报错了,这个错叫并发修改异常.  其实这个问题描述的是:迭代器…
列表迭代器:  ListIterator listIterator():List集合特有的迭代器 该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法. 特有功能: A: boolean hasPrevious():判断是否有元素  B:Object previous():获取上一个元素 注意:ListIterator可以实现逆向遍历,但是必须先正向遍历,才能逆向遍历,所以一般无意义,不使用. import java.util.ArrayList; im…
List集合的特有功能: A:添加功能 void add(int index,Object element):在指定索引处添加元素 B:获取功能 Object get(int index):获取指定索引处的元素 C:列表迭代器 ListIterator listIterator():List集合特有的迭代器 D:删除功能 Object remove(int index):根据索引删除元素,返回被删除的元素 E:修改功能 Object set(int index,Object element):根…
练习:用集合存储5个动物对象,并把动物对象进行遍历. 分析: A:创建动物类 a:无参构造方法 b:有参构造方法 c:get.set方法 B:创建集合对象 a:Collection animal = new ArraryList(); C:创建动物对象 b:5种动物,随意想 D:把动物对象添加进集合中 c:添加进animal中 E:把集合转换成数组 d:Object[] toArray():把集合转成数组,可以实现集合的遍历 F:遍历数组 动物类: package zl_ObjectTest1;…
一.多态  1.1 多态:一个事物的多种形态  1.2 多态的表现 行为(方法)多态:重写和重载. 引用多态(动态绑定):编译时的类型和运行时不一致的这种现象 例:父类 = 子类 Pet p = new Dog(); 向上转型:父类=子类 例:Pet p = new Dog(); 向下转型:子类 = (子类)父类 例: Dog d = (Dog)p; public abstract class Pet { private String name; private int health=100;…
Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似的. java.util.regex包主要包括以下三个类: Pattern类: pattern对象是一个正则表达式的编译表示.Pattern类没有公共构造方法.要创建一个Pattern对象,你必须首先调用其公共静态编译方法,它返回一个Pattern对象.该方法接受一个正则表达式作为它的第一个参数.…
1.mybatis 通过mybatis-generator-core-1.3.2 代码生成: 工具下载地址: https://code.google.com/p/mybatis/ 解压工具包 mybatis-generator-core-1.3.2 找到lib目录 添加 配置文件,根据文档说明执行代码生成: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration…
题目1:编写一个应用程序,输入用户名和密码,访问test数据库中t_login表(字段包括id.username.password),验证登录是否成功. 题目2:在上一题基础上,当登录成功后,将t_user表(id.name.sex.birthday)的信息进行显示(要求使用DB.java完成登录和获取t_user表中数据的操作),最后再对t_user表进行一条记录的添加操作. 代码 DB.java import java.sql.Connection; import java.sql.Driv…
1.首先安装lrzsz 上传下载服务 yum install -y lrzsz 2.然后检查是否已经安装java rpm -qa|grep java 如果已经安装卸载后再重新安装 3.将下载好的jdk-8u161-linux-x64.tar.gz 上传到/usr/java文件夹中 cd java tar -xzvf jdk-8u161-linux-x64.tar.gz mv jdk1.8.0_161 jdk1.8 4.配置环境变量 vim /etc/profile 添加 JAVA_HOME=/u…
Use immutable classes as much as possible instead of mutable classes. Advantage Easy to design, implement and use than mutable classes. Less prone to error and more secure. Immutable objects are simple. Immutable objects are inherently thread-safe; t…
1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面 第一,控制资源的使用,通过线程同步来控制资源的并发访问 第二,控制实例的产生,以达到节约资源的目的 第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信 2.尽量避免随意使用静态变量 要知道,当某个对象被定义为stataic变量所引用,那么gc通常是不会回收这个对象所占有的内存,如 1 2 3 public c…
虽然Inteface中默认常量就是static final 的.因此很多人就认为其实存放常量的最佳地方,effective java中就提过,不建议使用常量接口.其有一个原因就是:代码编译问题 好,我们来看一个简单的例子: 有一个interface A,一个class B,代码如下: //file A.java public interface A{ String name = "bright"; } //file B.java public class B{ public stati…
package com.beiwo.inputstream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class lianxi { /** * @param args * 练习题: 将一张图片拷贝到另外一个地方. * @throws IOException */ public static void main(String[] args)…
在计算机中回调函数是指通过函数参数传递到其他代码类的,某一块可执行代码的引用,这以设计允许了底层代码调用者在高层定义的子程序. 在JAVA里面我们使用接口的方式来实现函数的回调. 回调的通俗就是:程序员阿祥写了一段程序(CallPerson)其中有回调函数的接口(PhoneCall),并且封装好了程序(CallPerson).程序员阿呆写了程序(MumCall)要让 阿祥写的程序(CallPerson)调用阿呆写的程序(MumCall)中的方法.于是阿祥的程序(CallPerson)通过程序中(…
java读取properties文件时,一定要注意properties里面后面出现的空格! 比如:filepath = /home/cps/ 我找了半天,系统一直提示,没有这个路径,可是确实是存在的,找来找去,原来是后面多了一个空格,导致路径不存在! 所以,一定要小心,尤其是不显示的字符.…
return 语句的作用:1.返回值 2.结束某个方法的执行. 局部变量必需要初始化,全局变量系统会默认初始值: 整型数赋默认值为0. 浮点数赋默认值为0.0,boolean赋默认值为false. char型赋默认值为'\u0000'. 复杂类型赋默认值为null. 栈是执行时的单位.而堆是存储的单位 栈:自己主动分配连续的空间,后进先出,放置局部变量 堆:不连续.放置new出来的变量 堆里面还有方法区,类的代码信息.static变量,常量池(字符串常量等) public class Anima…