自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 java注释的三种形式

JAVA的注释共有三种形式:单行注释、多行注释、文档注释1.单行注释public class online{ public static void main(String[] args) { //这是一个单行注释 System.out.println("Hello World!"); }}2.多行注释public class online{ public static void main(String[] args) { /* 这是一个多行注释 */ Syste

2020-07-02 12:58:01 10727 1

原创 JAVA的JDK安装及环境变量的配置

1、什么是JDKJDK全称Java Development ToolKit,是Java语言bai开发工具包。JDK是整个JAVA的核心,包括了duJava运行环境(zhiJava Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(dao即Java API 包括rt.jar)。2、安装JDK安装网址:https://www.oracle.com/index.html点击Product,红色框选按钮点击JAVA点击Download

2020-07-02 00:57:48 792

原创 使用自定义注解打印日志@WebLog

话不多少,直接上图WebLog.javaimport java.lang.annotation.*;/************************************************ * Created by IntelliJ IDEA. * description: * company: xxx * @author xxx * date:xxx * version: xxx ***********************************************

2022-04-27 18:07:02 999

原创 @Transactional和@Async一起使用,事务失效问题解决

原因:同一个类内这样调用的话,只有第一次调用了动态代理生成的ProxyClass,之后一直用的是不带任何切面信息的方法本身解决办法将需要事务的方法放到另一个类中。例子@Componentpublic class A { @Resource private B b; @Async public void test(){ b.dd(); }}@Componentpublic class B { @Transacti

2022-04-27 11:02:28 2778

转载 Java8 中通过 Stream 对列表进行去重的方法(亲测有用)

1. Stream 的 distinct() 方法distinct() 是Java 8 中 Stream 提供的方法,返回的是由该流中不同元素组成的流,distinct() 通过 hashCode() 和 eqauls() 方法来判断重复元素,因此,我们可以通过重写 hashCode() 和 equals() 方法来达到某些特殊需求的去重。Stream<T> distinct();1.1 对于 String 列表的去重因为 String 类已经覆写了 equals() 和 hashCo

2021-10-18 16:52:34 6306

转载 synchronized和lock的区别

synchronized和lock的区别存在层次synchronized是JAVA关键字,在JVM层面上,synchronized是内置的语言实现Lock是一个接口锁的释放1.synchronized获取锁的线程执行完同步代码,释放锁2.线程执行发生异常,jvm自动让线程释放锁必须在finally中释放锁,不然异常时有可能造成死锁锁的获取synchronized,A获得锁,b等待,如果A阻塞,b一直等分情况,lock有多重获取锁的方式,会尝试获得锁锁定状态sync

2020-08-04 17:52:51 167

原创 HashMap、Hashtable、ConcurrentHashMap三者间的异同

HashMap、Hashtable、ConcurrentHashMap三者间的异同(基于JDK8)1.在线程安全上HashMap是线程不安全的,而Hashtable、ConcurrentHashMap都是线程安全的,ConcurrentHashMap对每一个桶加锁,而hashtable是对整个都加锁,也就是意味着concurrenthashmap虽然也是线程安全的,但是效率默认就是hashtable的16倍。2. 开始提供的版本 1. HashMap是JDK1.2提供的 2. Hashta

2020-07-28 21:48:05 163

转载 HashSet,TreeSet和LinkedHashSet的区别

HashSet,TreeSet和LinkedHashSet的区别总体而言,如果你需要一个访问快速的Set,你应该使用HashSet;当你需要一个排序的Set,你应该使用TreeSet;当你需要记录下插入时的顺序时,你应该使用LinedHashSet。Set接口:1.Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false。2.Set判断两个对象相同不是使用==运算符,而是根据equals方法。也就是说,只要两个对象用equals方法比较返回true,Set就不

2020-07-27 22:40:53 130

原创 Set遍历打印的常用方式

Set遍历打印的常用方式set是无序的,所以Set是没有get() 方法, 因此不能使用常规的for循环遍历,故有以下三种思路:这里有一个集合Set s = new HashSet<>(); Set<String> s = new HashSet<>(); s.add("zhangsan"); s.add("lisi"); s.add("wangwu");1、利用Collection接口提供 的API,先将集合转换为数组,在遍历举个例子:Object

2020-07-27 22:25:22 2698 3

原创 Vector、ArrayList和LinkedList三者的区别联系之处

Vector、ArrayList和LinkedList三者的区别联系之处。三者都实现了List接口,都拥有List和collection里面的方法。Vector底层实现和ArrayList十分相似,都是对象数组实现,而LinkedList是用链表的方式进行存储数据的。Vector相对于ArrayList,使用了synchronized方法(线程安全),所以性能要比ArrayList差,但是线程安全。Vector和ArrayList采用数组存储数据,由于根据索引插入数据涉及数组元素移动

2020-07-27 21:48:12 175

原创 力扣66题:加一

题目要求:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 就是数学运算的+1示例 2:输入: [9,9,9,9]输出: [1,0,0,0,0]解释: 就是数学运算的+1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one著作权

2020-07-21 21:59:59 260

转载 String、Stringbuffer与Stringbuilder的区别

1、在执行速度上:Stringbuilder->Stringbuffer->String2、String是字符串常量 Stringbuffer是字符串变量 Stringbuilder是字符串变量 有可能我们会疑惑String怎么是字符串变量。看以下代码: String str = adc; str = str + “ef”; System.out.println(str);输出结果为:abcef;在Java虚拟机中str为adc时是一个变量,当str被

2020-07-21 21:06:44 92

原创 力扣344题:反转字符串

题目要求:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。1.不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。2.你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“

2020-07-21 20:56:38 188

原创 JAVA交换两个数常用的三种方法

JAVA交换两个数常用的三种方法中间变量法数学运算法数学运算法话不多suo,开干第一种、中间变量法整体思路:有两个整形变量a和b,先将a付给第三个变量c,这样a就存储下来,所以讲b赋给a,再讲c赋给b,就完成了交换,代码如下:public static void main(String[] args) { int a = 2; int b = 4; int c = a;//将a用临时变量c保存下来 System.out.print("交换之前a是" + a);

2020-07-20 21:07:03 4570

原创 JAVA中数据类型的转换

JAVA数据类型的转换有两种:自动类型转换和强制类型转换自动类型转换在java中,如果遇到运算,系统会自动类型按照从低到高完成类型转换,其中转换的排序如下:char byte short > int > float > double例1:public class TestType{ public static void main(String[] args){ byte num = 15; //第一步 short num2 = 10; //第二步 int nu

2020-07-02 23:21:01 154

原创 JAVA的基本数据类型思维导图

JAVA数据类型

2020-07-02 22:41:33 390

原创 JAVA变量的定义及如何定义变量

变量:变量用于表示在程序中可能被改变的值。attention声明类型是告诉编译器根据数据类型给其分配合理的内存在賦值给变量之前,必须声明变量声明的变量在使用之前必须被斌值定义变量的两种方式1、先声明再赋值例:public class Hasai { public static void main(String[] args) { // 定义一个整形的a变量 int a; // 将10赋给num变量 a = 10; // 打印变量 System.out.print

2020-07-02 19:02:19 3771

原创 JAVA标识符的命名规范

JAVA标识符的命名规范1、只能由数字、字母、下划线(_)、以及美元符号($)构成2、不能以数字开头,如2a,2user_name1就是不可以的3、标识符不能是保留字(如int、super,详见)4、标识符不能是true、false、null、附:java保留的关键字abstract assert boolean break bytecase catch char classcontinue default do double elseenum extends final finally

2020-07-02 13:46:45 201

原创 错误: 类XX是公共的, 应在名为XX.java 的文件中声明

这种报错是由于定义的public class和文件名不一致改为解决,不报错了

2020-07-02 01:09:51 3603

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除