Java 学习笔记
学习 Java 的个人学习笔记。
syrdbt
这个作者很懒,什么都没留下…
展开
-
Java 自定义注解
1.元注解元注解是 Java提供的一些基本注解,使用这些元注解区可疑创建新的注解;可以先大致看一下元注解,然后去看后面自定义注解的例子。元注解有 @Retention, @Documented, @Target, @Inherited,@Repeatable五种。1.1@Retention@Retention可以定义注解的生命周期,注解的存活时间有如下三种:Reten...原创 2019-07-26 19:17:03 · 323 阅读 · 0 评论 -
Java 重写equals就必须重写hashCode的原理分析
原文地址:https://www.cnblogs.com/wang-meng/p/7501378.html因为最近在整理Java集合的源码, 所以今天再来谈谈这个古老的话题,因为后面讲HashMap会用到这个知识点, 所以重新梳理下。如果不被重写(原生Object)的hashCode和equals是什么样的? 不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。 ...转载 2019-06-29 16:12:46 · 404 阅读 · 0 评论 -
Java 中的 BIO、NIO和AIO
原文地址:https://qindongliang.iteye.com/blog/2018539在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下:序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是...转载 2019-06-17 14:51:38 · 213 阅读 · 0 评论 -
Java中的抽象类
抽象类必须使用abstract关键声明,例如抽象类MyAbstractStudy:public abstract class MyAbstractStudy {}不能使用抽象类创建对象。 抽象类中可以没有抽象方法。 抽象方法必须为public或者protected,缺省情况下为public。 抽象类的子类必须实现父类的抽象方法,如果没有则需要声明子类也为abstract类。扩展,接口...原创 2019-06-12 21:40:00 · 1040 阅读 · 0 评论 -
Java 中的继承
继承:可以基于已存在的类构造一个新类,继承已存在的类就是复用(继承)这些类的方法和域,在此基础上,还可以添加一些新的方法和域。1.继承性继承性:把多种有着共同特性的多的类事物抽象成一个类,这个类就是多个类的父类。父类的意义在于可以抽取多个类的共性,代码复用,减少代码量。例:三个类,Pupil类(小学生),MiddleSchoolStudent类(中学生类),CollegeSt...原创 2019-06-02 20:21:49 · 281 阅读 · 0 评论 -
Java 中的类与对象
类是构造对象的模板,由类构造(construct) 对象的过程称为创建类的实例 (instance)。对象中的数据称为实例域(instance field), 操纵数据的过程称为方法(method)。对于每个特定的类实例(对象)都有一组特定的实例域值,这些值的集合就是这个对象的当前状态( state )。1. 封装性封装性:将数据和对数据的操作封装起来,对象状态(属性)由这...原创 2019-06-02 18:19:58 · 3591 阅读 · 0 评论 -
Java工程师成神之路(2019正式版)
原文地址:https://hollis.blog.csdn.net/article/details/87686522 原作者:Hollis在csdn主要版本 更新时间 备注v1.0 2015-08-01 首次发布v1.1 2018-03-12 增加新技术知识、完善知识体系v2.0 2019-02-19 结构调整,更适合从入门到精通;...转载 2019-05-20 23:40:19 · 507 阅读 · 0 评论 -
Java中的static关键字
原文地址:https://www.cnblogs.com/dolphin0520/p/10651845.html,原作者:Matrix海子 再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:《Java中的static关键字解析》。...转载 2019-05-14 21:33:31 · 525 阅读 · 0 评论 -
Java 中的 sleep 方法
Sleep可以让当前线程进行休眠,有如下两个方法:public static void sleep(long millis) throws InterruptedException ,mills 毫秒 public static void sleep(long millis, int nanos) throws InterruptedException ,millis 毫秒, nan...原创 2019-05-11 11:03:35 · 41772 阅读 · 1 评论 -
Java 的 final 关键字
final关键字可以用于修饰类、方法、变量。修饰类 , 类不可以被继承。 修饰方法,方法不可以被重写。 修饰变量:变量为基础数据类型,这个变量一旦被初始化之后就不能在改变。 变量为引用数据类型,这个引用的地址不可以被修改,引用指向的对象的内容还可以修改。1.修饰类final 修饰类 , 类不可以被继承,测试代码如下所示:MyFinalStudy...原创 2019-05-09 23:15:49 · 309 阅读 · 0 评论 -
Java反射
网上好些都是这篇文章的转载,但是就找不到原文,如果您知道,请告知。反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码))一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的...转载 2019-05-03 21:28:16 · 191 阅读 · 0 评论 -
Java 字节流与字符流的区别详解
原文地址:https://www.cnblogs.com/DONGb/p/7844123.html1. 流的概念在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。2. 字节流与字符流在java.io包中操作文件内...转载 2019-05-02 21:25:50 · 17170 阅读 · 15 评论 -
Java 接口学习总结
1.概述接口( interface) 技术, 主要用来描述类具有什么功能,而并不给出每个功能的具体实现。接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。接口的特点:(1)一个类可以实现( implement) 一个或多个接口。Java中每个类只能扩展于一个类。(2)接口不是类,尤其不能使用 new 运算符实例化一个接口,却能声明接口的变量。(...原创 2019-05-01 14:15:12 · 2152 阅读 · 0 评论 -
Java 泛型详解
原文地址:https://blog.csdn.net/s10461/article/details/53941091目录1. 概述2. 一个栗子3. 特性:泛型只在编译阶段有效4. 泛型的使用4.3 泛型类4.4 泛型接口4.5 泛型通配符4.6 泛型方法4.6.1 泛型方法的基本用法4.6.2 类中的泛型方法4.6.3 泛型方法与可变参数4.6...转载 2019-04-28 21:11:42 · 155 阅读 · 0 评论 -
Java 枚举(enum)的7种常见用法
原文地址:http://blog.lichengwu.cn/java/2011/09/26/the-usage-of-enum-in-java/本文在原文的基础上进行了测试,添加了如何调用的代码(main方法)。目录用法一:常量用法二:switch用法三:向枚举中添加新方法用法四:覆盖枚举的方法用法五:实现接口用法六:使用接口组织枚举用法七:关于枚举集合的使用...转载 2019-04-25 16:43:36 · 244 阅读 · 0 评论 -
Java创建多线程的两种方式:继承Thread类和实现Runnable接口
继承Thread类:继承Thread类,再重写Thread类的Run方法,然后调用start()方法启动线程,启动线程后执行的是run方法。注意:多次启动线程(多次调用start()方法)是不合法的。实现Runnable接口:实现Runnable接口,再重写run方法,然后将这个实现类当做参数传给Thread类,例如:Thread dog = new Thread(runn,"小狗"),创建...原创 2019-04-20 11:44:10 · 14371 阅读 · 0 评论 -
Java的Set集合(HashSet、TreeSet)学习
1.概述Set 接口是Collection和IterAble的一个子接口,List集合中的元素是没有顺序的,并且元素不可以重复。实现List接口 的容器类有HashSet <E>类,TreeSet <E> 类。1.1HashSetHashSet类,不允许出现重复元素;允许包含值为null的元素,但最多只能有一个;不保证集合中元素的顺序,...原创 2019-04-13 20:09:51 · 397 阅读 · 0 评论 -
Java 的深拷贝和浅拷贝学习
1.为什么需要拷贝举一个例子,一个Student类,初始化创建一个student01实例,如果想让初始化创建student02实例和student01实例相同,你可能会这样做:Student student02 = student01,直接赋值。这样做是有问题的,student01这个对象实例放在Java堆中,如果你直接赋值,Java堆中并没有创建一个新的实例对象student02,而是让s...原创 2019-04-13 18:21:18 · 189 阅读 · 0 评论 -
Java 的 List 集合(ArrayList、LinkedList、Vector )学习
1. 概述List接口是Collection和IterAble的一个子接口,List集合中的元素是有顺序的,并且元素可以重复。实现的List接口 的容器类有ArrayList类,LinkedList类,Vector类。ArrayList类,实现一个可变大小的数组 ,可以像链表一样被访问,他是以数组的方式实现的,允许快速随机存取,也就是说ArrayLi...原创 2019-03-28 11:38:02 · 739 阅读 · 0 评论 -
Java 面向对象的三个特性和五个基本原则
面向对象(OOP)的三个特性: 封装性(Encapsulation),继承性和多态性。面向对象(OOP)的五个原则:单一职责原则(SRP)、开放封闭原则(OCP)、里氏替换原则(LSP)、依赖倒置原则(DIP)、接口隔离原则(ISP)。1.面向对象的三个特性面向对象的三个特性: 封装性(Encapsulation),继承性和多态性。1.1封装性封装性:将数据和对数据...原创 2019-03-23 11:08:47 · 8116 阅读 · 0 评论 -
Java 中 String、StringBuilder 和 StringBuffer 的区别
1. String和 (StringBuilder、 StringBuffer)的区别String是内容不可变的字符串,StringBuilder 和 StringBuffer是内容可变的 ,因为String底层是通过 “final字符数组” 存储数据,用关键词final修饰的变量一旦赋值,就不能改变,也称为修饰的标识为常量。而StringBuilder 和 StringBuff...原创 2019-03-22 22:39:45 · 128 阅读 · 0 评论 -
Java中的 “==” 和 equals
1.“ ==”的使用“ ==”在比较基本“基本数据类型”(byte,short,int,long,float,double,boolean,char),比较的是基本数据类型的值;比较“引用类型”(类(class)、接口(interface)、数组(array)),比较的是引用类型在内存中的存放地址。下面用一些例子进行验证:1.1 基本类型比较样例1 == 1 ,...原创 2019-03-22 20:32:59 · 298 阅读 · 0 评论 -
Java 实现去除中文文本的停用词
目录1. 整体思路2. 中文文本分词环境配置3. 下载停用词表4.去除停用词工具类5. 工具类测试5.1 测试代码5.2 测试结果1. 整体思路第一步:先将中文文本进行分词,这里使用的HanLP-汉语言处理包进行中文文本分词。第二步:使用停用词表,去除分好的词中的停用词。2. 中文文本分词环境配置使用的HanLP-汉语言处理包进行...原创 2019-03-18 17:10:54 · 4266 阅读 · 0 评论 -
生成“唯一辨识的32位字符串”工具类(UUID、Java)
这里通过使用UUID来生成 唯一辨识的32位字符串。UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不...原创 2019-02-17 18:03:43 · 3221 阅读 · 0 评论 -
Java 中的8种基本数据类型,数据范围,数据所需字节数
1.Java 基本数据类型Java 基本数据类型包括如下类型,整型:char、byte、short、int、long;浮点型:float、double; 布尔型:boolean;具体描述如下表所示(一个字节8位)。 整型:char、bit、short、int、long 类型名 描述 ...原创 2019-01-23 17:25:08 · 503 阅读 · 0 评论 -
Java 中 Holder 方式 和 枚举方式 实现单例模式
Holder 方式 和 枚举方式可以线程安全的实现单例模式。Holder 方式借助于类加载的初始化阶段<clinit>()方法是同步方法。枚举方式是因为枚举类型不能继承且只能被实例化一次。1.Holder 方式实现单例模式类加载的初始化阶段<clinit>()方法是同步方法,在类中设置一个静态类,将唯一实例放在静态类中,第一次访问实例...原创 2019-06-26 18:49:10 · 3850 阅读 · 0 评论 -
Java 应用性能调优实践
原文出处:点击传送文章目录概述性能诊断工具OS 诊断CPU 诊断MemoryI/OJava 应用诊断工具应用代码诊断jstackJProfilerGC 诊断jstatjmapMAT性能优化实践JVM 调优:GC 之痛应用层调优:嗅到代码的坏味道数据库层调优:死锁噩梦总结与建议概述Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据...转载 2019-10-06 21:37:52 · 200 阅读 · 0 评论