
JAVA
文章平均质量分 62
洺润
努力学习,未来可期
展开
-
JAVA软引用与弱引用及其应用举例
1. 定义强引用、软引用和弱引用的方式new出来的是强引用,比如String str = new String(“123” );弱引用:WeakReference<String> weakRef=new WeakReference<String>(str);其中str是引用软引用: SoftReference<String> softRef...原创 2020-04-28 17:25:01 · 1486 阅读 · 1 评论 -
原因分析:为何内部匿名类形参必须要加final
代码示例现有代码示例如下,其中通过匿名内部类的方式创建线程,并且内部类中需要的参数通过final被定义成常量,其中需要注意的是 在jdk1.7需要显式声明final关键字,否则语法报错,而jdk1.8会隐性加上finalpublic class InnerFinalDemo { public static int addByThreads(final List list) { // 创建...原创 2020-04-16 16:56:45 · 334 阅读 · 0 评论 -
实例演示:为什么需要重写hashcode和equals
现有一段代码如下:package charter1;import java.util.HashMap;/** * @Auther: 洺润Star * @Date: 2020/4/8 16:28 * @Description: */class Key{ Integer id ; public Key(Integer id) { this.id ...原创 2020-04-08 21:22:18 · 223 阅读 · 0 评论 -
Java注解
1. 什么是注解?Jdk1.5新增新技术,注解。很多框架为了简化代码,都会提供有些注解。可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。注解分类:内置注解(也成为元注解 jdk 自带注解)、自定义注解(Spring框架)2. 什么是内置注解比如(1) @SuppressWarnings ...原创 2020-03-01 15:34:09 · 93 阅读 · 0 评论 -
SpringSecurity:基本用法
文章目录一:SpringSecurity基本用法一:SpringSecurity基本用法创建一个spring boot项目,倚赖如下:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> ...原创 2019-09-19 22:25:12 · 578 阅读 · 0 评论 -
JWT研究
1. JWT介绍在介绍JWT之前先看一下传统校验令牌的方法,如下图 :问题:传统授权方法的问题是用户每次请求资源服务,资源服务都需要携带令牌访问认证服务去校验令牌的合法性,并根据令牌获取用户的相关信息,性能低下。解决:使用JWT的思路是,用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校...原创 2020-02-21 14:27:54 · 731 阅读 · 0 评论 -
资源服务授权代码案例
1. 资源服务授权流程资源服务拥有要访问的受保护资源,客户端携带令牌访问资源服务,如果令牌合法则可成功访问资源服务中的资源,如下图 :上图的业务流程如下:客户端请求认证服务申请令牌认证服务生成令牌认证服务采用非对称加密算法,使用私钥生成令牌。客户端携带令牌访问资源服务客户端在Http header 中添加: Authorization:Bearer 令牌。资源服务请求认证服务校验...原创 2020-02-21 11:39:24 · 501 阅读 · 0 评论 -
JVM知识汇总
1. 什么是HotSpot VM提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小公司设计的;甚至这个虚拟机最初并非是为Java语言而开发的,它来源...原创 2020-02-20 17:16:33 · 281 阅读 · 0 评论 -
这一次,彻底解决Java的值传递和引用传递(附面试题)
这一次,彻底解决Java的值传递和引用传递本文旨在用最通俗的语言讲述最枯燥的基本知识学过Java基础的人都知道:值传递和引用传递是初次接触Java时的一个难点,有时候记得了语法却记不得怎么实际运用,有时候会的了运用却解释不出原理,而且坊间讨论的话题又是充满争议:有的论坛帖子说Java只有值传递,有的博客说两者皆有;这让人有点摸不着头脑,下面我们就这个话题做一些探讨,对书籍、对论坛博客的说...原创 2019-12-17 23:44:25 · 1432 阅读 · 2 评论 -
手写代码模拟热部署功能
先创建一个User对象,打印我是1.0版本public class User { public void add(){ System.out.println("哈哈哈,我是User 1.0版本"); }}复制类到任一文件目录下,将打印信息改成2.0版本public class User { public void add(){ ...原创 2019-12-15 15:35:00 · 241 阅读 · 0 评论 -
内存溢出与内存泄漏的区别
Java内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽)而Java内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。内存溢出,这个好理解,说明存储空间不够大。就像倒水倒多了,从杯子上面溢出了来了一样。内存泄漏,原理是,使用过的内存空间没有被及时释放,长时间占用内存,最终导致内存空间不足,而出现内存溢出。其中如果代码中Static使...原创 2019-12-13 20:20:13 · 182 阅读 · 0 评论 -
通配符高级使用:受限泛型
泛型的上限:格式: 类型名称 <? extends 类 > 对象名称意义: 只能接收该类型及其子类泛型的下限:格式: 类型名称 <? super 类 > 对象名称意义: 只能接收该类型及其父类型比如:现已知Object类,String 类,Number类,Integer类,其中Number是Integer的父类public static void ma...原创 2019-12-04 23:38:09 · 179 阅读 · 0 评论 -
线程池、Lambda表达式
一: 等待唤醒机制1.1 线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务...原创 2019-12-01 22:11:09 · 142 阅读 · 0 评论 -
线程与同步知识总结
一: 线程1.1 多线程原理通过多线程的执行时序图,体现一下多线程程序的执行流程代码如下:自定义线程类:public class MyThread extends Thread{ /* * 利用继承中的特点 * 将线程名称传递 进行设置 */ public MyThread(String name){ super(name); } /* *重写run方法 *...原创 2019-12-01 16:27:49 · 191 阅读 · 0 评论 -
File类与IO流知识总结(三):缓冲流、转换流、序列化流
一 :缓冲流在上篇文章中学习了基本的一些流,作为IO流的入门,而现在我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。1.1 概述缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型...原创 2019-11-21 13:55:33 · 194 阅读 · 0 评论 -
File类与IO流知识总结(二):字节流、字符流、IO异常处理和 属性集
一:IO概述1.1 什么是IO生活中,我们肯定经历过这样的场景。当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了。当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里。那么数据都是在哪些设备上的呢?键盘、内存、硬盘、外接设备等等。我们把这种数据的传输,可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为 输入input 和 输出output ,即流向内存是输...原创 2019-11-19 19:47:35 · 474 阅读 · 0 评论 -
File类与IO流知识总结(一):File类与 递归的使用
一:File类1.1 概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。1.2 构造方法public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。public File(String parent, String child) :从父路径名字符串和子路径名字符串创...原创 2019-11-18 23:30:54 · 160 阅读 · 0 评论 -
Java常用类:时间处理示例代码
1. 测试Data的常用用法 Date d = new Date(2000); System.out.println(d); //Thu Jan 01 08:00:02 CST 1970 System.out.println(d.getTime()); //2000 //当前时间戳 Date d2 = new Date(); System.out.println(d2....原创 2019-11-13 17:24:23 · 143 阅读 · 0 评论 -
数组工具类:排序,搜索与打印
数组打印 Arrays.toString int[] a = {100,20,30,5,150,80,200}; System.out.println(a); System.out.println(Arrays.toString(a));输出结果:2. 数组排序 Arrays.sort()在上面的代码中继续添加以下代码 ...原创 2019-11-12 20:03:30 · 164 阅读 · 0 评论 -
数组的拷贝,插入和删除元素的本质与数组扩容操作
1. 数组的拷贝涉及方法 : System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) public static native void arraycopy(Object src, int srcPos...原创 2019-11-12 19:41:31 · 268 阅读 · 0 评论 -
JAVA数据类型总结,类型转换,常量声明规范,final关键字用法
(一)JAVA 数据类型总结变量就是申请内存来存储值,Java 的两大数据类型:内置数据类型引用数据类型注:内存管理系统根据变量的类型为变量分配存储空间,所以分配的空间只能用来储存该类型数据。1.内置数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。四个整型1.byte:byte 数据类型是8位、有符号的,以二进制补...原创 2019-03-29 20:11:06 · 154 阅读 · 0 评论 -
JAVA数组的三种声明方式、多维数组的遍历、Arrays的类的常用方法总结
(一)JAVA数组的三种声明方式第一种方式动态创建,声明并创建内存空间,等待赋值。int arr [ ] = new int [5] ;public static void main(String[] args) { int arr[] = new int[5]; //等待赋值,默认为零 System.out.println(arr[0])...原创 2019-03-30 08:50:59 · 686 阅读 · 0 评论 -
JAVA数组的排序实现
1.自然升序排序使用Arrays类:其中的sort()使用的是“经过调优的快速排序法”,但不能用sort()进行降序排序public static void main(String[] args) { int[] a={1,-5,5,8}; Arrays.sort(a); for(int i=0;i<a.length;i++) ...原创 2019-03-30 13:18:37 · 3315 阅读 · 1 评论 -
JAVA泛型类、泛型方法、类型统配符的使用
(一)JAVA泛型类1.为什么需要泛型 public static void main(String[] args) { List list = new ArrayList(); list.add("string01"); list.add("string02"); list.add(100); for (int...原创 2019-03-30 21:49:46 · 588 阅读 · 0 评论 -
JAVA跳出循环的三种方式
public class BreakLoopTest { public static void main(String[] args) { //方式一 for (int i = 0;i<10;i++){ for (int j = 0; j<10; j++) { if (i =...原创 2019-03-30 22:39:49 · 16214 阅读 · 0 评论 -
字符串习题练习
请根据控制台输入的特定日期格式拆分日期如:请输入一个日期(格式如:月日****年)经过处理得到:****年月日提示:使用String的方法indexOf、lastIndexOf、substring...原创 2019-04-10 10:48:40 · 3268 阅读 · 1 评论 -
浅谈JAVA API文档 与常用工具类总结(一)
掌握了基本的JAVA面向对象后,学会读API文档JAVA的很重要,就像读一本英语词典,而且你不能只是遇到问题才会去查,对于初学者更要熟悉整个API文档的结构,以宏观的角度去查阅文档和学习JAVA,而不能管中窥豹;对于异常的查询: Boolean b = new boolean[];//此处报错Array initializer expected...原创 2019-04-05 12:47:14 · 909 阅读 · 0 评论 -
枚举代码示例
1.简单枚举代码import java.util.logging.Logger;public class EnumTest { enum animals{ dog,cow,duck; } public static void main(String[] args) { //测试简单枚举 System.out.p...原创 2019-04-01 08:30:31 · 586 阅读 · 0 评论 -
浅谈JAVA API文档 与常用工具类总结(二)
(一)数学运算本部分参考:Math常用数学运算1. 三角函数方法:static double sin(double a ) : 返回角的三角正弦static double cos(double a) : 返回角的三角余弦static double tan(double a) : 返回角的三角正切static double asin(double a) : 返回角的反正...原创 2019-04-06 13:23:13 · 232 阅读 · 0 评论 -
浅谈JAVA API文档 与常用工具类总结(三)
文章目录(一)文件处理1.File2.基础类:InputStream和OutputStream(字节流操作)3.基础类Reader和Writer(字符流操作)4.代码实例:(二)流处理(三)多线程处理(一)文件处理1.File获取文件信息boolean exists():判断文件或目录是否存在String getName():返回文件或目录的名称String getParent()...原创 2019-04-07 14:58:35 · 325 阅读 · 0 评论 -
JAVA继承、接口、多态
先来张菜鸟教程上找到的图方便理解:文章目录(一)继承1.概念:2.简单举例:3.继承的作用4.继承类型5.继承特性与相关使用规则6.Java 重写(Override)与重载(Overload)(1) 重写(2)重载(二) 接口1.定义:2.接口特性:3.接口与其它的比较(1)接口与类的比较(2)接口与抽象类的比较(3)接口与继承的比较4.接口的继承(三)多态1.定义:2.多态的优点:3.多态存...原创 2019-04-02 20:18:51 · 2315 阅读 · 0 评论 -
Object类的toString方法示例
文章目录(一)源码示例(二)分析1.是什么(1)toString2.为什么3.怎么做(一)源码示例package com.mession;public class ToStringTest { static int i=1; public static void main(String[] args) { System.out.println("love ...原创 2019-05-05 16:35:05 · 701 阅读 · 1 评论 -
Java多线程
文章目录原创 2019-05-06 22:08:30 · 114 阅读 · 0 评论 -
JAVA反射创建类对象与例题
文章目录(一)1.概念2.三种获取字节码的方式3.reflection 工作示例4.显示对象类名(二)常用方法(三)例题1.将所有String类型的成员变量里的b改成a3 .模拟 instanceof 操作符(四)methods类(五)数组的反射(一)1.概念反射就是把Java的各种成分映射成相应的Java类。Class类的构造方法是private,由JVM创建。反射是java语言的一个...原创 2019-09-17 22:14:58 · 348 阅读 · 0 评论 -
java多线程习题:龟兔赛跑与素数计算
(一)龟兔赛跑原创 2019-09-17 22:16:53 · 805 阅读 · 0 评论 -
Java 标识符 ,关键字,基础规则
(一)标识符1.标识符概念:用来表示类名,变量名,方法名,类型名,数组名,文件名的有效字符序列称为标识符。2.标识符命名规则只有字母(区分大小写),下划线,美元符号和数字组成,长度不受限制。注:字母包括英文26个字母 ,汉字,日文,朝鲜文,俄文,希腊字母等。第一个字母不能是数字。不能是关键字不能是true false null(尽管三个都不是关键字)(二)修...转载 2019-03-29 16:39:43 · 261 阅读 · 0 评论