
java
文章平均质量分 55
这招怎么样
小白,加油!
展开
-
《凤凰架构》读书笔记 —— 本地事务如何实现原子性和持久性?
事务处理几乎是每一个信息系统中都会涉及到的问题,它存在的意义就是保证系统中的。 这就是ACID的概念。A I D 是手段, C 是目的。原创 2022-09-16 12:03:47 · 646 阅读 · 0 评论 -
ArrayList 源码笔记
ArrayList 源码笔记原创 2022-09-07 09:21:54 · 358 阅读 · 0 评论 -
删除 @SessionAttributes 中的属性
做项目的使用用到 @SessionAttributes("user") 将用户存储在会话中以供后续访问,在注销时使用session.removeAttribute("user");发现删除不了需使用 sessionStatus.setComplete(); // 退出登陆 @GetMapping("/logout") public String logout(HttpSession session, SessionStatus sessionStatus) { se原创 2021-04-22 11:26:32 · 568 阅读 · 0 评论 -
牛课题记录:下面有关值类型和引用类型描述正确的是()?
下面有关值类型和引用类型描述正确的是()?A 值类型的变量赋值只是进行数据复制,创建一个同值的新对象,而引用类型变量赋值,仅仅是把对象的引用的指针赋值给变量,使它们共用一个内存地址。B 值类型数据是在栈上分配内存空间,它的变量直接包含变量的实例,使用效率相对较高。而引用类型数据是分配在堆上,引用类型的变量通常包含一个指向实例的指针,变量通过指针来引用实例。C 引用类型一般都具有继承性,但是值类型一般都是封装的,因此值类型不能作为其他任何类型的基类。D 值类型变量的作用域主要是在栈上分配内存空间内,原创 2021-04-03 12:59:13 · 1512 阅读 · 0 评论 -
类初始化顺序
类初始化顺序:初始化父类中的静态成员和静态代码块,初始化顺序取决于两者在代码中出现的顺序初始化子类中的静态成员和静态代码块,初始化顺序取决于两者在代码中出现的顺序初始化父类中的普通成员和普通代码块,初始化顺序取决于两者在代码中出现的顺序执行父类构造函数初始化子类中的普通成员和普通代码块,初始化顺序取决于两者在代码中出现的顺序执行子类构造函数...原创 2021-04-02 11:15:28 · 118 阅读 · 0 评论 -
Ajax 简单案例
Ajax 发送 GET // 1、创建对象 var xhr = new XMLHttpRequest(); // 2、初始化 设置 请求方法 url 是否异步(true为异步) xhr.open('GET', 'http://127.0.0.1:8888/ajax', true); // 3、发送 xhr.send(); /* 4、回调(处理服务端返回的数据) readyState: 0: 请求未初始原创 2021-02-19 16:10:20 · 1484 阅读 · 0 评论 -
Mybatis Plus 分页
依赖 <!-- Mybatis Plus (其中还包含了 Mybatis 和 jdbc) --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.原创 2021-02-14 11:04:37 · 818 阅读 · 0 评论 -
Java 等待(wait)和通知(notify )
读 Java 高并发程序设计 笔记为了支持多线程之间的通信,JDK 提供了两个非常重要的接口线程wait() 方法public final native void wait(long timeout) throws InterruptedException;public final void wait() throws InterruptedException { wait(0); }notify() 方法public final native void notify();publi原创 2020-11-26 15:38:01 · 319 阅读 · 0 评论 -
java 将十进制数转为二进制数以字符串形式打印出来
int i = 100; String s = ""; while (i > 0){ s = (i % 2) + s; i /= 2; } System.out.println(s);原创 2020-11-26 15:34:31 · 778 阅读 · 1 评论 -
重写了equals()方法一定要写hashcode()方法
hashcode() 在 Object 中默认实现是通过对象的内存地址返回一个哈希值equals() 在 Object 中默认实现是比较对象的内存地址假设一种情况:我们重写了equals()方法却没有重写hashcode()方法此时当我们在内存中 new 了两个对象,这两个对象的值相等(可以简单理解为对象内容相等,内容都是“1”),并且重写后的equals()方法也是比较值的,所以这两个对象equals()为true当我们这两个对象作为key,put进HashMap中时,由于HashMap是根据ke原创 2020-11-26 15:33:05 · 145 阅读 · 0 评论 -
Java对象的创建过程(博文参照深入理解Java虚拟机)
博文中讨论的对象仅限普通Java对象Person person = new Person("小明");虚拟机检查Person类是否已经被加载、解析和初始化过。如果没有,那必须先执行类加载过程。类加载检查通过后,接下来虚拟机为新生对象分配内存虚拟机将分配到的内存空间(但不包括对象头)都初始化为零值,如果使用了TLAB(本地线程分配缓冲 Thread Local Allocation Buffer),这一项工作也可以提前至TLAB分配时顺利进行。虚拟机设置对象头的信息:这个对象是哪个类的实例、GC原创 2020-06-13 10:16:59 · 125 阅读 · 0 评论 -
String 中 intern 方法的理解
intern用于将字符串存入字符串常量池中,但在不同的JDK版本中有不同之处:JDK 6中,将调用该方法的字符串对象S尝试放入字符串常量池中(JDK 6字符串常量池在永久代中)如果字符串常量池中已经存在与S内容相同(equal 判断为true)的字符串对象,则不会放入,返回已存在的字符串对象的地址如果字符串常量池中不存在与S内容相同的字符串对象,则会将S复制一份存入字符串常量池中,并返回其地址JDK 7起中,将调用该方法的字符串对象S尝试放入字符串常量池中(JDK 7起,字符串常量池在堆中)原创 2020-06-10 20:46:01 · 204 阅读 · 0 评论 -
JVM双亲委派机制
Java有三大类加载器启动类加载器 BootstrapClassLoader (也成引导类加载器)c++ 编写的类加载器,用来加载java核心类库jre/lib/rt.jar, 例如我们熟悉的String是ExtClassLoader和ExtClassLoader的父类加载器扩展类加载器 ExtClassLoaderjava 编写的类加载器,从java.ext.dirs系统属性所指定的目录中加载类库,或从JDK安装目录的jre/lib/ext子目录(扩展目录)下加载类库。系统类加载器原创 2020-05-23 11:35:26 · 170 阅读 · 0 评论 -
为什么说Java是半编译半解释的语言
首先计算机只认识机器指令码,也就是 01010101001…我们使用高级语言(java、python、C…)编写的程序想要执行,就要把我们写的程序变成计算机可以识别的二进制语言(也就是机器指令码,也称机器码),才能在计算机上运行高级语言按程序的执行方式可分为编译型语言和解释型语言先看百度百科对两者的定义:编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执原创 2020-05-21 17:04:00 · 1936 阅读 · 2 评论 -
黑马学习笔记:动态代理
基于接口的动态代理接口:public interface IProducer { /** * 销售 * @param money */ public void saleProduct(float money); /** * 售后 * @param money */ public void after...原创 2019-12-23 15:19:44 · 245 阅读 · 0 评论 -
暴力法统计一个整数中每个数字(0~9)出现的次数
暴力法统计一个整数中每个数字(0~9)出现的次数Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[10]; for(int i = 1; i <= n; i++){ int j = i; ...原创 2019-09-04 10:50:46 · 1532 阅读 · 0 评论