
Java
Java
aspirant-complete
这个作者很懒,什么都没留下…
展开
-
springBoot JWT实现websocket的token登录拦截认证
springBoot JWT实现websocket的token登录拦截认证功能:所有关于websocket的请求必须登录,实现websocket需要登录后才可使用,不登录不能建立连接。原创 2023-07-03 06:43:25 · 3554 阅读 · 3 评论 -
springboot监听Redis 缓存过期(Key 失效)事件
springboot监听Redis 缓存过期(Key 失效)事件原创 2023-07-03 05:25:04 · 2918 阅读 · 1 评论 -
java中for(a b:c){}是如何执行的?
这是循环遍历bai的一种方式,在du《java编程思想》一书中称为“增强的for循环”。意思大概是:把a类型的集合c中的每个元素赋值给b。用例如下:List<String> strs = new ArrayList<String>();strs.add("hello");strs.add("world"); for( String s : strs){ //把strs中的每个元素依次赋值给s。第一次吧hello复制给s System.out.println(s);原创 2020-09-21 22:16:15 · 606 阅读 · 0 评论 -
java中==和equals()区别
== :运算符可以使用在基本数据类型变量和引用数据类型变量中如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同)如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体补充: == 符号使用时,必须保证符号左右两边的变量类型一致。二、equals()方法:是一个方法,而非运算符只能适用于引用数据类型Object类中equals()的定义:public boolean equals(Object obj).原创 2020-10-31 11:44:58 · 194 阅读 · 0 评论 -
java this关键字的使用
this关键字的使用:1.this可以用来修饰、调用:属性、方法、构造器2.this修饰属性和方法:this理解为:当前对象 或 当前正在创建的对象2.1 在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。但是,通常情况下,我们都选择省略"this."。特殊情况下,如果方法的形参和类的属性同名时,我们必须显式的使用"this.变量"的方式,表明此变量是属性,而非形参。2.2 在类的构造器中,我们可以使用"this.属性"或"this.方原创 2020-10-30 14:37:58 · 112 阅读 · 0 评论 -
java字符串反转函数reverse()的使用
StringBuffer result = new StringBuffer(); int n = s.length(); for (int i = 0; i < n; i++) { char temp = s.charAt(i); if (Character.isLetterOrDigit(temp)) { result.append(Character.toLowerCase(tem..原创 2020-09-12 21:40:06 · 8051 阅读 · 3 评论 -
java 封装、继承、多态和抽象
封装、继承、多态和抽象1、封装封装给对象提供了隐藏内部特性和行为的能力,对象提供了一些能被其他对象访问的方法来改变它的内部数据。java中提供3中修饰符public、private和protected,每种修饰符都给其他位于同一包下或不同包下的对象赋予了不同的访问权限。封装的一些好处提高了模块化,禁止了对象间的不良交互,提高了代码的可用性和可维护性。通过隐藏对象的属性来保护对象的内部行为。2、继承给与对象从基类获取字段和方法的能力,提供代码重用性,也可在不修改类的情况下给现有类增加新的特性。3、多原创 2020-09-25 14:06:05 · 497 阅读 · 0 评论 -
Java 多线程两种创建和使用方式、线程生命周期、Thread常用函数、线程同步(安全)
Thread类中的常用的方法start():启动当前线程;调用当前线程的run()run(): 通常需要重写Thread类中的此方法,将创建的线程要执行的操作原创 2020-11-02 20:42:04 · 252 阅读 · 0 评论 -
Java中String、StringBuffer、StringBuilder三者的异同?
String、StringBuffer、StringBuilder三者的异同?简述: String:不可变的字符序列;底层使用char[]存储 StringBuffer:可变的字符序列;线程安全的,效率低;底层使用char[]存储 StringBuilder:可变的字符序列;jdk5.0新增的,线程不安全的,效率高;底层使用char[]存储详细说明:可变性 S原创 2020-11-04 01:39:35 · 282 阅读 · 0 评论 -
java 面向对象特征之多态性
多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态性)编译时多态:在编译阶段,编译器会根据参数的不同来静态确定调用相应的方法。运行时多态性:运行时多态就是指父类的某个方法被其子类重写时,可以产生各自的功能行为。运行时多态也被称为动态绑定,后期绑定或运行时绑定。理解多态性:可以理解为一个事物的多种形态。对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)多态的使用:虚拟方法调用有了对象的多态性以后,我们在编译期,只能调用父类中声明的原创 2020-10-31 10:41:59 · 391 阅读 · 0 评论 -
java字符串String,character常用函数
关于字符串对象的一些常用套路(方法)将数字转换成字符串:任何基本类型包装类都有toString() ,将数字转换成字符串将字符串转成数字: 每个基本类型包装类 都有:(注意:如果字符串格式不正确,则转换为数字不会成功,报异常)Integer.parseInt(s)Long.parseLong(s);Byte.parseByte(s)Float.parseFloat(s);字符数组–>字符串 :String a = new String(字符数组);字符串–> 字符数组 : st原创 2020-09-12 21:35:21 · 723 阅读 · 0 评论 -
java多线程创建补充,使用线程池和Callable接口创建多线程
面试题:创建多线程有几种方式?四种!分别为:实现Callable接口,使用线程池,继承thread类,实现Runnable接口其他两种创建多线程方式Callable接口/ * 创建线程的方式三:实现Callable接口。 --- JDK 5.0新增 * * * 如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大? * 1. call()可以有返回值的。 * 2. call()可以抛出异常,被外面的操作捕获,获取异常的信息 * 3. C...原创 2020-11-04 00:24:24 · 163 阅读 · 0 评论 -
java使用两个线程打印 1-100,线程1, 线程2 交替打印及sleep() 和 wait()的异同?
java 使用两个线程打印 1-100。线程1, 线程2 交替打印原创 2020-11-03 21:27:56 · 634 阅读 · 2 评论 -
java格式化输出问题
Java中System.out.print();System.out.printf();System.out.println()的区别System.out.println();输出后换行System.out.print();输出后不换行System.out.printf();可以实现对输出宽度的控制以及左右对齐相关符号说明:基本格式:格式控制符以一个%开始,一个字母结束,字母规定了方法按照何种方式打印这个值,例如d表示十进制整数(int),f表示浮点(double)System.out.prin原创 2020-10-30 14:10:16 · 461 阅读 · 0 评论 -
Java 二维数组中board.length与board[0].length的区别
public class test { public static void main(String[] args) { char [][] board = {{'A','B','C','E'}, {'S','F','C','S'}, {'A','D','E','E'} }; System.out.pr原创 2020-09-13 10:39:24 · 487 阅读 · 0 评论 -
java 栈的isEmpty()和empty()的区别
java 栈的isEmpty()和empty()的区别public synchronized boolean isEmpty() { return elementCount == 0;}public synchronized int size() { return elementCount;}public boolean empty() { return size() == 0; }从源码来说两者使用上没什么区别但是在Java中,isEmpt原创 2020-09-12 20:23:59 · 2980 阅读 · 1 评论 -
Java权限修饰符
权限修饰符:可以修饰类、类成员(包括成员变量和成员方法)修饰类:对于非内部类而言,类的访问权限仅有public和包访问权限两种(内部类可以是private或protected)修饰成员:对于一个类,其成员能否被其他类访问,取决于该成员的权限修饰符。在Java中,类成员的访问修饰符有四个:public、默认(包访问权限)、protected、private。而访问的范围有5个:本类中、子父类(同一个包)、子父类(不同的包)、其他类(同一个包)、其他类(不同的包),其具体权限控制如下表所示:权限符原创 2021-05-07 22:55:49 · 110 阅读 · 0 评论 -
Java 类属性和局部变量的区别
属性(非static):内存加载时会加载到堆空间局部变量:内存加载时会加载到栈空间原创 2020-10-30 15:20:30 · 240 阅读 · 0 评论 -
Java 4种权限修饰符
* 1.Java规定的4种权限(从小到大排列):private、缺省、protected 、public2.4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类3.具体的,4种权限都可以用来修饰类的内部结构:属性、方法、构造器、内部类修饰类的话,只能使用:缺省、publicpublic:被public修饰的成员变量和方法可以在任何类中都能被访问到被public修饰的类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件.原创 2020-10-30 15:07:54 · 1027 阅读 · 0 评论 -
java.security.InvalidKeyException: IOException : Short read of DER length
做支付测试服务时报了如下错误java.security.InvalidKeyException: IOException : Short read of DER length at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:352) ~[na:1.8.0_181] at sun.security.pkcs.PKCS8Key.decode(PKCS8Key.java:357) ~[na:1.8.0_181] at sun.security.rsa.原创 2021-04-27 22:35:15 · 3470 阅读 · 0 评论 -
Java Queue 中 add() 和 offer()的区别
Queue 中 add() 和 offer()都是用来向队列添加一个元素。在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false 。原创 2020-09-12 19:57:47 · 1811 阅读 · 0 评论 -
java的执行模式半编译和半解释型
Java语言是一种特殊的语言,它采用的形式为先编译,再解释的执行方式。也就是先把Java语言的源代码编译成中间代码class文件,然后在运行时根据class文件运行到jvm上解释执行。所以严格意义上说,Java语言是一种半编译半解释的语言。众所周知,程序分为:解释程序和编译程序。解释程序将程序逐句翻译,翻译一句执行一句边翻译边执行,不产生目标程序。解释方式是按照远程序中语句的动态顺序,直接地逐句进行分析解释,并立即执行。解释的过程:在程序执行时开始翻译代码为二进制,翻译一句执行一句。编译程序,就是将源原创 2020-05-15 10:18:06 · 977 阅读 · 0 评论 -
java练习二:“三天打渔两天晒网“;日期时间计算方式
/* * 练习二:"三天打渔两天晒网" 1990-01-01 xxxx-xx-xx 打渔?晒网? 总天数 % 5 == 1,2,3 : 打渔 总天数 % 5 == 4,0 : 晒网 总天数的计算? 方式一:( date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24) + 1 * */ @Test public void test5() throws ParseExc原创 2020-11-04 00:12:10 · 441 阅读 · 0 评论 -
Java 异常处理
1. 异常的体系结构java.lang.Throwable |-----java.lang.Error:一般不编写针对性的代码进行处理。 |-----java.lang.Exception:可以进行异常的处理 |------编译时异常(checked) &n原创 2020-11-04 16:42:48 · 219 阅读 · 0 评论 -
java 集合遍历、list、set接口
集合与数组存储数据概述: 集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)数组存储的特点: 一旦初始化以后,其长度就确定了。 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。比如:String[] arr;i..原创 2020-11-04 20:13:07 · 164 阅读 · 0 评论 -
java 重载和重写的区别
1、重写其实就是在子类中把父类本身有的方法重新写一遍。子类继承了父类原有的方法,但有时子类并不想原封不动的继承父类中的某个方法,所以在方法名,参数列表,返回类型(除过子类中方法的返回值是父类中方法返回值的子类时)都相同的情况下, 对方法体进行修改或重写,这就是重写。但要注意子类函数的访问修饰权限不能少于父类的。方法名、参数、返回值相同。子类方法不能缩小父类方法的访问权限。子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。存在于父类和子类之间。方法被定义为final不能被重写。原创 2020-09-26 15:02:04 · 174 阅读 · 0 评论 -
java 关键字static、final、abstract、interface
1、static 关键字 static 修饰符,主要用来修饰类的内部结构如:属性、方法、代码块、内部类 属性,是否使用static修饰,又分为:静态属性(或类变量) vs 非静态属性(实例变量) 静态变量:我们创建了类的多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,会导致其他对象调用此静态变量时,是修改过了的。 实例变量:我们创建了类的多个原创 2020-11-02 10:55:30 · 225 阅读 · 0 评论