Java
文章平均质量分 64
基础知识+框架技术
lena7
这个作者很懒,什么都没留下…
展开
-
双亲委派模型
类与类加载器在了解双亲委派模型之前,首先我们需要了解类与类加载器。对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立原创 2021-04-13 21:35:32 · 84 阅读 · 0 评论 -
《深入理解Java虚拟机》十款HotSpot虚拟机的垃圾收集器
文章目录基础引用垃圾收集算法标记-清除算法标记-复制算法标记-整理算法垃圾收集器经典垃圾收集器Serial 收集器ParNew 收集器Parallel Scavenge 收集器Serial Old 收集器Parallel Old 收集器CMS 收集器Garbage First 收集器(G1)低延迟垃圾收集器Shenandoah 收集器ZGC 收集器特殊的垃圾收集器Epsilon 收集器本文内容是阅读《深入理解Java虚拟机》第三章的学习笔记。基础引用判断对象是否存活和“引用”离不开关系。在JDK1原创 2021-04-09 19:28:13 · 199 阅读 · 0 评论 -
逃逸分析
逃逸分析逃逸分析是java虚拟机优化技术,并不是直接优化代码的手段,而是为其他优化措施提供依据的分析技术。基本原理分析对象动态作用域。当一个对象在方法中定义后,正常情况下该对象的作用域就在方法内。但是如果该对象作为调用参数传递到其他方法中(在JAVA中传递的是该对象的引用,实际上还是同一个对象,而不是新的对象),这种就是“方法逃逸”;对象还可以赋值给其他线程能够访问的实例变量(同样是引用传递,实际是同一个对象),这种称为“线程逃逸”。从不逃逸、方法逃逸到线程逃逸,称为对象由低到高的不同逃逸程度。对原创 2021-07-20 11:12:09 · 170 阅读 · 0 评论 -
垃圾收集算法:分代收集算法、标记-清除算法、标记-复制算法、标记-整理算法
文章目录垃圾收集算法分代收集算法标记-清除算法标记-复制算法标记-整理算法本文内容是阅读《深入理解Java虚拟机》第三章的学习笔记。垃圾收集算法分代收集算法是目前虚拟机使用的回收算法。它解决了标记整理不适用于老年代的问题,将内存分为各个年代。一般分为老年代和新生代。标记-清除算法标记-清除算法是最早出现也是最基础的垃圾收集算法。执行过程:算法可分为两个阶段(标记和清除):首先标记处所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未原创 2021-04-10 08:43:12 · 205 阅读 · 0 评论 -
《Java开发手册》 个人笔记
文章目录编程规约命名风格常量定义代码格式OOP规约编程规约命名风格命名采用英文,不允许采用拼音与汉字。类名采用UpperCameICase风格命名,但 DO / BO / DTO / VO / AO / PO / UID 例外。方法名、参数名、成员变量、局部变量使用lowerCamelCase风格命名。常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不嫌名字长。抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试转载 2021-06-05 16:33:20 · 289 阅读 · 0 评论 -
报错:Try setting a different JdbcType for this parameter or a different jdbcTypeForNull...
报错:Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property.原因:jsp页面未向controller传入参数,或者参数名字不一致。修改:传入相同名字的参数,或使用@RequestParam设置id即可。public xxx xxx(@R...原创 2020-02-03 22:22:41 · 7979 阅读 · 0 评论 -
报错:Unsatisfied dependency expressed through field 'xxxService';
报错片段:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'permissionController': Unsatisfied dependency expressed through field 'permissionService'; nested...原创 2020-02-02 23:23:26 · 19190 阅读 · 0 评论 -
报错:java.util.Date cannot be cast to java.sql.Date
报错:java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date原因:java.util.Date不能强制转换成java.sql.Date错误代码:pst.setDate(4,(java.sql.Date)date1);修改成功:pst.setDate(4,new java.sql.Date(dat...原创 2020-03-27 16:05:27 · 1550 阅读 · 0 评论 -
使用Spring Security,在登陆页面没有跳转的问题。(ssm)
首先检查有没有在spring-security.xml中配置成功页面和失败页面其次判断web.xml中是否引用了spring-security.xml文件最后,如果上两步都没问题,删去spring-security.xml的该行,看看能否解决该问题...原创 2020-01-31 14:25:40 · 2594 阅读 · 2 评论 -
报错:Uncaught ReferenceError: Vue is not defined
页面报错:在创建vue的这一行原因:还没有引入vue.js就使用vue(代码的位置不对),应该将使用vue的代码块放在引入vue.js之后。原创 2020-09-03 10:11:45 · 1634 阅读 · 0 评论 -
服务器部署项目成功后,静态页面显示正常但无法获取数据库的数据。
(1)mysql是否启动:# service restart mysqld(2)数据库的sql语句是否创建成功。进入数据库操作# mysql -uroot -p密码使用数据库:use 数据库名查询该数据库是否有数据。(3)服务器的数据库密码和本机密码不一样,在进行项目打包的时候,需要将数据库密码修改之后,clean再package。...原创 2021-02-17 20:56:42 · 1372 阅读 · 0 评论 -
import com.alibaba.druid.pool.DruidDataSourceFactory;报错
没有添加druid-1.0.9.jar导包原创 2019-08-09 17:09:53 · 9195 阅读 · 0 评论 -
Java操作数据库时报错:Unknown column ‘userId‘ in ‘where clause‘
报错的行:pst = conn.prepareStatement(sql);报错内容:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column ‘userId’ in ‘where clause’原因:数据库对应的表中不存在这一列解决:找到报错的行,检查自己此处(或上一句)写的sql语句的列名和数据库...原创 2020-03-26 22:44:42 · 6025 阅读 · 1 评论 -
线程创建的三种方式
线程进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程资源。操作系统在分配资源时是把资源分配给进程的,但是CPU资源比较特使,它是被分配到线程的,因为真正要占用CPU运行的是线程,所以也说线程是CPU分配的基本单位。线程创建的三种方式继承Thread类继承Thread类重写run方法代码如下:public class MyThread extends Thread { @Ove原创 2021-06-06 10:14:30 · 87 阅读 · 0 评论 -
对象间四种引用关系:强引用、软引用、弱引用、虚引用。
引用判断对象是否存活和“引用”离不开关系。在JDK1.2后,引用被分为4种:强引用、软引用、弱引用、虚引用。这四种引用强度依次减弱。强引用:是指在程序代码之中普遍存在的引用赋值,即类似"Object obj=new Object()"这种引用关系。无论任何情况下,只要强引用关系还存在,垃圾收集器就永远不会回收掉被引用的对象。软引用:用来描述一些还有用,但非必须的对象。只被软引用关联着的对象,在系统将要发生内存溢出异常前,会把这些对象列进回收范围之中进行第二次回收。(即在内存不足时才会进行回收)如果这原创 2021-04-10 08:36:47 · 734 阅读 · 0 评论 -
资源映射springboot
在继承了WebMvcConfigurerAdapter的类中重写以下方法 @Bean public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){ WebMvcConfigurerAdapter adapter=new WebMvcConfigurerAdapter() { @Override public void add...原创 2020-01-13 14:42:24 · 162 阅读 · 0 评论 -
使用Spring Security完成用户注销功能
在spring-security.xml中<security:http>标签中配置以下内容即可:<security:logout invalidate-session="true" logout-url="/logout.do" logout-success-url="/login.jsp" />其中,logout-url表示当访问该路径时注销用户(应该在注销按钮上配置...原创 2020-01-31 20:02:45 · 809 阅读 · 0 评论 -
使用SpringSecurity时,获取登录用户名称
代码:SecurityContextHolder.getContext().getAuthentication().getName();即可返回当前登录名原创 2020-02-28 13:44:26 · 763 阅读 · 0 评论 -
IDEA配置实现SpringBoot热部署
热部署:实现不需要重启服务,即可实现更新。①在pom.xml添加maven坐标<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId></dependency>如果已经配置过了,只需加入第一步的maven坐标即可。如果是第一次进行热部署配置,因为IDEA本身不支持编译,因此需原创 2020-07-05 10:01:29 · 177 阅读 · 0 评论 -
Hashtable、HashMap、ConcurrentHashMap常见问题总结+源码解析(Java 8)
文章目录为什么HashMap能够存储null值,而Hashtable不可以?Hashtable如何保证线程安全?快速失败和安全失败机制是什么?为什么util包下的集合遍历时修改报错,而util.concurrent包下的不会?ConcurrentHashMap分段锁为什么HashMap能够存储null值,而Hashtable不可以?通过下面的HashMap的源码,我们可以看到containsKey方法遇到null值会返回false,那么hashMap为何能够存储null值呢? public b原创 2021-06-19 11:37:01 · 327 阅读 · 0 评论 -
try-catch-finally 执行顺序及return结果
try块中包括的是不稳定的代码块。当try块中的代码抛出异常的时候,catch块捕获异常并进行相应的处理。无论try块中是否有异常,finally块都一定会执行,但可以没有finally块。本文为了探究try-catch-finally的执行顺序及return结果,在案例中为了理解,只涉及简单的变量值的改变。首先看一个例子: int checkReturn1() { int num=1; try { return ++num; } catch (Exception e) {原创 2021-06-06 16:15:10 · 179 阅读 · 0 评论 -
URLEncoder、URLDecoder、StringUtils.replaceEach
URLEncoder:将中文字符转换成url编码格式 @Test public void testURLEncoder(){ String httpCode="[你好]"; try { httpCode= URLEncoder.encode(httpCode,"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } System.out.println(httpCode); /原创 2021-05-14 22:00:32 · 368 阅读 · 0 评论 -
ArrayList:初始化和扩容机制的源码分析
private static final Object[] EMPTY_ELEMENTDATA = new Object[0]; //1 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = new Object[0]; //2 transient Object[] elementData; //注意:这里elementData指的是容量的大小,而不是实际存储的大小 public ArrayList(int v...原创 2021-04-13 18:02:24 · 290 阅读 · 0 评论 -
Java集合:常用集合类、区分不同集合类、学习笔记
常见Java集合体系MapMap集合特点:使用key-value存储数值。通过key访问value的值。key值不可以重复:一个Map的任何两个key通过equals方法比较总是返回false。通过keySet()方法可以返回Map里所有key。EnumMap是性能最好的,但只能使用同一个枚举类的枚举值作为key。IdentityHashMap与HashMap基本相似,但使用“==”来判断元素是否相等,而不是equals()。HashMap线程不安全。允许key或va原创 2021-03-21 13:13:42 · 411 阅读 · 3 评论 -
String、StringBuilder、StringBuffer的区别
String类是不可变类,即只读字符串。若更改String对象的值,会重新创建一个对象,因此可能会额外产生很多临时变量。使用String()构造器创建对象时,会创建一个包含0字符串序列的String对象,而不是返回null。由于String是不可变的,因此也是线程安全的。StringBuilder类字符序列可变的字符串。与StringBuffer相似。线程不安全。因为StringBuilder没有实现线程安全,因此性能略高。StringBuffer类字符序列可变的字符串。线程原创 2021-03-20 00:01:29 · 176 阅读 · 4 评论 -
配置项目启动即执行的初始化类
SSM:import org.springframework.beans.factory.InitializingBean;import org.springframework.stereotype.Component;@Componentpublic class Init implements InitializingBean{ @Override public void afterPropertiesSet() throws Exception { System.out.print原创 2020-08-06 20:01:30 · 331 阅读 · 0 评论 -
Java GUI实现输入文本框JTextField带默认显示值
JTextField jtf=new JTextField(“你好”);此时创建的输入文本框,打开即自带“你好”两个字如果想要鼠标点击时才显示对应文字,可以使用下面方法 jtf.addFocusListener(new FocusAdapter() { @Override public void focusLost(FocusEvent focusEvent) { jt...原创 2020-03-29 17:25:32 · 6051 阅读 · 0 评论 -
格式化Date
yyyy-MM-dd得到:年-月-日yyyy-MM-dd HH:mm:ss得到:年-月-日 时:分:秒 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); String date=sdf.format(new Date());//格式化日期 sdf.parse(date);//将字符串格式的日期转换成Date类型...原创 2020-03-24 18:43:12 · 577 阅读 · 0 评论 -
实现方法:能把一个字符串src的右侧出现的第一个字符串替换为新的字符串
public class changeOld { public static String replaceLast(String src, String olds, String news){ StringBuilder s=new StringBuilder(src); int last=src.lastIndexOf(olds); //获取字符串最后出现的位置 s.replac...原创 2019-12-10 15:32:28 · 231 阅读 · 1 评论 -
页面访问时间记录 即记录上一次访问时间
package web;import java.io.IOException;import java.net.URLDecoder;import java.net.URLEncoder;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import...原创 2019-08-20 21:58:16 · 1029 阅读 · 0 评论 -
创建一个 List集合,并随意添加10个元素。然后获取索引为5处的元素;再获取其中某2个元素的索引;再删除索引为3处的元素。7-2
package group7;import java.util.LinkedList;import java.util.Scanner;/*创建一个 List集合,并随意添加10个元素。然后获取索引为5处的元素;再获取其中某2个元素的索引;再删除索引为3处的元素。*/public class text2 {public static void main(String[] args) ...原创 2019-08-09 16:08:45 · 2389 阅读 · 0 评论 -
创建一个Set集合,并用Set集合保存用户通过控制台输入的20个字符串7-1
package group7;import java.util.HashSet;//不保证排列顺序import java.util.Scanner;//创建一个Set集合,并用Set集合保存用户通过控制台输入的20个字符串。public class text1 {public static void main(String[] args) {int sum=20;HashSet hs...原创 2019-08-09 16:08:38 · 3711 阅读 · 0 评论 -
给定["a","b","a","b","c","a","b","c","d"]字符串数组,利用Map集合统计处各字符串元素的出现次数。7-3
package group7;import java.util.HashMap;import java.util.Map;/*给定[“a”,“b”,“a”,“b”,“c”,“a”,“b”,“c”,“d”]字符串数组,然后使用Map的key来保存数组中字符串元素,value保存该字符串元素的出现次数,最后统计处各字符串元素的出现次数*/public class text3 {publ...原创 2019-08-09 16:08:29 · 1406 阅读 · 1 评论 -
梭哈游戏的完善(通过数字比较大小确定赢家)7-4
package group7;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;//梭哈游戏的完善//比较最后获胜者-A>K>Q>J>10>9>8;黑>红>梅>方;public class text4 {public s...原创 2019-08-09 16:08:22 · 384 阅读 · 1 评论 -
将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[] 数组。得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H].6-3
package group6;/将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组。得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H]。/public class text3 {public static void main(String[] args) {String a=“A1B2C3D4E5F6G7H8”;cha...原创 2019-08-08 13:43:57 · 3832 阅读 · 1 评论 -
将字符串“ABCDEFG“中的“CD“截取出来;再将“B“、“F“截取出来6-2
package group6;//将字符串"ABCDEFG"中的"CD"截取出来;再将"B"、"F"截取出来。public class text2 {public static void main(String[] args) {String a=“ABCDEFG”;String b=a.substring(2,4);String c=a.substring(1,2);String ...原创 2019-08-08 13:42:44 · 2570 阅读 · 0 评论 -
定义一个长度为10的整数数组,可用于保存用户通过控制台输入的10个整数。并计算它们的平均值、最大值、最小值6-1
package group6;import java.util.Scanner;/定义一个长度为10的整数数组,可用于保存用户通过控制台输入的10个整数。并计算它们的平均值、最大值、最小值。/public class text1 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);Sys...原创 2019-08-08 13:42:05 · 8564 阅读 · 1 评论 -
梭哈游戏的发牌5-4
package group5;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class text4 {public static void main(String[] args) {String[] s1={“梅花”,“方块”,“黑桃”,“红桃”};Str...原创 2019-08-08 13:40:16 · 302 阅读 · 0 评论 -
通过抽象类定义车类的模板,然后通过抽象的车类来派生拖拉机、卡车、小轿车5-1
package group5;/通过抽象类定义车类的模板,然后通过抽象的车类来派生拖拉机、卡车、小轿车。/abstract class car{abstract void speed();abstract void size();abstract void price();}class tractor extends car{@Overridevoid speed() { //...原创 2019-08-08 13:37:41 · 1776 阅读 · 0 评论 -
定义交通工具、汽车、火车、飞机这些类,为这些类提供超过三个不同的构造器,并通过初始化快提取构造器中的通用代码4-4
package group4;/*定义交通工具、汽车、火车、飞机这些类,注意他们的继承关系,为这些类提供超过三个不同的构造器,并通过初始化快提取构造器中的通用代码。*/public class text4 {public static void main(String[] args) {new way(); //我通过交通方式来到这里new way(“火车”,“5hours”...原创 2019-08-08 13:37:08 · 3837 阅读 · 0 评论