Java - 基础
文章平均质量分 96
# Java - 基础
yamaxifeng_132
努力、奋斗
展开
-
Java中注解的使用与实例
注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记。以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上。原创 2016-09-24 20:45:40 · 333 阅读 · 0 评论 -
Java规范之JNDI(Java命名与目录接口)
JNDI(Java Naming and Directory Interface)- Java命名和目录接口,是一组在Java应用中访问命名和目录服务的API。为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。命名服务将名称和对象联系起来,可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称还有属性。一、命名服务原创 2016-09-16 23:35:18 · 3503 阅读 · 0 评论 -
Java8 日期/时间(Date Time)API指南
Java 8日期/时间( Date/Time)API是开发人员最受追捧的变化之一,Java从一开始就没有对日期时间处理的一致性方法,因此日期/时间API也是除Java核心API以外另一项倍受欢迎的内容。原创 2016-09-16 11:55:45 · 1187 阅读 · 0 评论 -
Java枚举类Enum方法简介
Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。当我们在声明一个enum类型时,我们应该注意到enum类型有如下的一些特征。原创 2016-09-24 00:52:10 · 298 阅读 · 0 评论 -
JDK16全部新特性
译文《全新首发JDK 16全部新特性》封面:洛小汐译者:潘潘JDK 8 的新特性都还没摸透,JDK 16 的新特性就提着刀来了。郑重申明:第一次冒险翻译专业领域的文献,可想而知,效果特别糟糕。一般翻译文献特别是技术专业领域的内容,因为涉及到很多专业术语、业内常用语,很多词汇你在翻译软件根本找不到,并且大部分知识点技术都是成体系的、相互关联的、多版本迭代的、有历史原因的等等,因此要求你本身必须清楚每个技术点的前因后果和逻辑关系,否则翻译起来特别耗费时间精力,因为...转载 2021-03-29 11:32:31 · 969 阅读 · 0 评论 -
Java的spi介绍和简单应用
1.什么是java的spiSPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现。具体是在JAR包的"src/META-INF/services/"目录下建立一个文件,文件名是接口的全限定名,文件的内容可以有多行,每行都是该接口对应的具体实现类的全限定名.2.运用场景比如你想扩展转载 2020-10-14 19:17:21 · 196 阅读 · 0 评论 -
Java 14 新功能介绍!
Java 14预定于3月17日发布。那么,14版究竟有什么新功能,对于整天写代码、维护代码的Java开发者来说,哪些功能最有用呢?正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消正在上传…重新上传取消作者 | Raoul-Gabriel Urma译者 | 弯月,责编 | 郭芮出品 | CSDN(ID:CSDNnews)以下为译文:第14版包含的JEP...转载 2020-03-22 15:50:48 · 148 阅读 · 0 评论 -
JAVA8的java.util.function包
JAVA8的java.util.function包一 概述name type description Consumer Consumer< T > 接收T对象,不返回值 Predicate Predicate< T > 接收T对象并返回boolean Function Function< T, R >...转载 2020-03-10 19:42:19 · 229 阅读 · 0 评论 -
我说精通字符串,面试官竟然问我Java中的String有没有长度限制?
String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西容易被忽略的。就如本文我们要讨论的问题:Java中的String有没有长度限制?这个问题要分两个阶段看,分别是编译期和运行期。不同的时期限制不一样。01 编译期首先,我们先来合理的推断一下,当我们在代码中使用String s = "";的形...转载 2019-12-31 15:38:44 · 152 阅读 · 1 评论 -
2019年9月17 发布,Java 13最全新特性解读
2017年8月,JCP执行委员会提出将Java的发布频率改为每六个月一次,新的发布周期严格遵循时间点,将在每年的3月份和9月份发布。目前,JDK官网上已经可以看到JDK 13的进展,最新版的JDK 13将于2019年9月17日发布。目前,JDK13处于Release-Candidate Phase(发布候选阶段),将于9月17日正式发布。目前该版本包含的特性已经全部固定,主要包含以下五...转载 2019-10-09 16:19:59 · 165 阅读 · 0 评论 -
equals()和hashCode()区别?
equals():反映的是对象或变量具体的值,即两个对象里面包含的值--可能是对象的引用,也可能是值类型的值。hashCode():计算出对象实例的哈希码,并返回哈希码,又称为散列函数。根类Object的hashCode()方法的计算依赖于对象实例的D(内存地址),故每个Object对象的hashCode都是唯一的;当然,当对象所对应的类重写了hashCode()方法时,结果就截然不同了。...原创 2016-12-12 11:02:57 · 411 阅读 · 0 评论 -
强引用、弱引用、软引用、虚引用
转载请注明出处:http://blog.csdn.net/mazhimazh/article/details/197524751、强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Objecto=newObject();//强引用当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryErr...转载 2016-12-12 13:49:30 · 278 阅读 · 0 评论 -
浅克隆与深克隆
转载:http://blog.csdn.net/mazhimazh/article/details/16828505在使用克隆时,我们需要知道使用的目的:就是为了快速构造一个和已有对象相同的副本。如果克隆对象,一般需要先创建一个对象,然后将原对象中的数据导入到新创建的对象中去,而不用根据已有对象进行手动赋值操作。1、克隆方法clone()clone是定义一个Object类下基本方法之一...转载 2016-12-12 13:59:20 · 304 阅读 · 0 评论 -
java.util.Objects工具类示例
java.util.Objects是java 1.7引入的,主要是对对象的一些常用操作,比如compare、equals/deepEquals、hash/hashCode、isNull/nonNull、requiredNonNull、toString这12个常用方法。Student类public class Student { private String name; private...原创 2016-12-09 14:57:44 · 10840 阅读 · 0 评论 -
java序列化与反序列化
1.定义以及相关概念互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯协议的一部分。通讯协议往往采用分层模型,不同模型每层的功能定义以及颗粒度不同,例如:TCP/IP协议是一个四层协议,而OSI模型却是七层协议模型。在OSI七层协议模型中展现层(Presentation Layer)的主要功能是把应用层的对象转换成一段连续的二进制串,或者反过来,把...转载 2017-02-22 20:09:47 · 340 阅读 · 0 评论 -
各种加密算法比较
算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA对称加密算法(加解密密钥相同) 名称 密钥长度 运算速度 安全性 资源消耗 DES 56位 较快 低 中...转载 2017-03-09 22:49:25 · 3111 阅读 · 0 评论 -
Java 10 正式发布!时隔 6 月带来 109 项新特性
转载于:https://blog.csdn.net/csdnnews/article/details/79648526期待已久,没有跳票的 Java 10 已正式发布!为了更快地迭代,以及跟进社区反馈,Java 的版本发布周期变更为了每六个月一次,并且承诺不会跳票。新的发布周期也会严格遵循时间点,将在每年的 3 月份和 9 月份发布。此次 Java 10 的版本号是 18.3。Java 10 是采...转载 2018-03-23 20:45:23 · 172 阅读 · 0 评论 -
如约而至,Java 10 正式发布:包含 109 项新特性
期待已久,没有跳票的 Java 10 已正式发布!你可以通过这里下载 Java 10 正式版。此前我们曾报道过,为了更快地迭代,以及跟进社区反馈,Java 的版本发布周期变更为每六个月一次,并且承诺不会跳票。新的发布周期也会严格遵循时间点,将在每年的 3 月份和 9 月份发布。所以 Java 10 的版本号是 18.3。Java 10 是采用新发布周期的第一个版本,提供了 109 项新特性,其中最...转载 2018-03-23 20:48:13 · 146 阅读 · 0 评论 -
JDK 10 的 109 项新特性
https://www.oschina.net/translate/109-new-features-in-jdk-10转载 2018-03-23 20:50:14 · 143 阅读 · 0 评论 -
反射中Class.forName()和ClassLoader.loadClass()的区别
一 Java类装载过程装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象;链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字节码验证,符号引用验证) 准备...转载 2019-01-23 20:46:34 · 174 阅读 · 0 评论 -
java反射中,Class.forName和classloader的区别(代码说话)
java中class.forName()和classLoader都可用来对类进行加载。class.forName()前者除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块。而classLoader只干一件事情,就是将.class文件加载到jvm中,不会执行static中的内容,只有在newInstance才会去执行static块。Class.fo...转载 2019-01-23 20:55:54 · 142 阅读 · 0 评论 -
floor、round、ceil、fix区别
floor、round、ceil、fix区别取整函数有: fix, floor, ceil, round.具体应用方法如下:fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1; floor(-1.8)=-2; floor(1.8)=1。cei...原创 2019-01-26 11:35:21 · 2344 阅读 · 0 评论 -
动态代理的两种方式以及区别
JDK动态代理:利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGlib动态代理:利用ASM(开源的Java字节码编辑库,操作字节码)开源包,将代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。区别:JDK代理只能对实现接口的类生成代理;CGlib是针对类实现代理,对指定的类生成一个子类,并覆盖其中的方法,这种通过继承类的实现...转载 2019-01-28 11:53:42 · 1468 阅读 · 0 评论 -
JPA概要
JPA定义了Java ORM及实体操作API的标准。本文摘录了JPA的一些关键信息以备查阅。如果有hibernate的基础,通过本文也可以快速掌握JPA的基本概念及使用。1 JPA概述JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口。JPA是JSR-220(EJB3.0)规范的一部分,在JSR-22...转载 2016-11-30 10:59:47 · 265 阅读 · 0 评论 -
java删除List中所有重复元素
本文介绍如何删除List中重复元素,分别介绍普通的java方式、Guava以及java8 Lambda表达式方式。普通java方式使用标准java集合框架的Set删除List中的重复元素:public void givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect() { Lis...转载 2019-04-23 09:20:39 · 1430 阅读 · 0 评论