- 博客(41)
- 收藏
- 关注

原创 JVM系列之1:内存与垃圾回收篇
目录:JVM系列之1:内存与垃圾回收篇1.01 JVM与Java体系结构1.02 类加载子系统1.03 运行时数据区概述及线程1.04 程序计数器(PC寄存器)1.05 虚拟机栈1.06 本地方法接口1.07 本地方法栈1.08 堆空间1.09 方法区1.10 对象实例化内存布局与访问定位1.11 直接内存1.12 执行引擎1.13 StringTableJVM系列之2:字节码与类的加载篇JVM系列之3:性能监控与调优篇JVM系列之4:大厂面试篇...
2020-08-28 18:32:47
160

原创 Java基础总结目录
目录Java集合框架概述Java集合框架概述-图片版包、jar存档文件和部署接口与内部类远程部署的RMI集合和泛型IO流总结—节点流、缓冲流、转换流、标准输入输出流、打印流、数据流java网络编程反射Java 8 新特性以上比较总结源于:《Head First Java》...
2020-08-28 18:30:17
98
原创 第一个mybatis程序--狂神说笔记(亲测成功)
我的第一个mybatis程序0、前言1、数据库2、IDEA项目2.1、新建项目2.2 配置依赖2.3 新建文件2.4 运行UserDaoTest0、前言先贴一份狂神说网站的学习笔记:Mybatis学习笔记本文纯属记录成功案例,而不记录教学过程本文与视频笔记有点不同本文仅为学习笔记,如侵则删1、数据库创建数据库mybatis,表为userCREATE DATABASE `mybatis`;USE `mybatis`CREATE TABLE `user`( `id` INT(20) N
2021-09-05 18:01:18
431
原创 lambda表达式的推导
0、写在前面学习多线程过程中解除到lambda表达式,现在总结一下。1、 lambda表达式为什么使用lambda表达式避免匿名内部类定义过多可以简洁代码去掉没意义的代码,留下核心的逻辑其实属于函数式编程的概念函数式接口:任何接口,如果只包含一个抽象方法,那么它就是一个函数式接口直接上代码,感受各种类package com.laoongcai.gitxuexi.lambda;/** * @Author: chen * @Description: 推导lambda表达式
2020-11-03 17:36:12
328
原创 Myspringboot:Mybatis整合(非逆向工程)
0、写在前面此文为记录非逆向工程,导入数据库SQLyog新建数据库IDEA新建project配置POM.xml配置application.properties连接数据库pojo层mapper层resource.mybatis.mapper:xmlcontroller层启动测试1、SQLyog新建数据库2、IDEA新建project选web和SQL目录如下:3、配置POM.xml复制新增部分即可全部代码如下:<?xml version="1.0"
2020-10-02 18:00:03
219
原创 Mybatis逆向工程创建使用
0、写在前面逆向工程简单理解为:由数据库生成代码。但只能生成单表的代码。步骤如下:创建数据库,创建表新建springboot的project配置POM.xml文件配置GeneratorMapper.xml文件由数据库生成代码1、创建数据库,创建表我使用的是SQLyog,比较简单,贴图:我新建的数据库为“mybatis”,使用的表为“user_table”。注意单词拼接一定要使用下划线,小写即可。2、新建springboot的projectNew->project->s
2020-09-30 11:29:18
193
原创 IDEA连接MySQL数据库
MySQL数据库IDEA 方面jar下载下载https://dev.mysql.com/downloads/connector/j/导入jar包解压之后再导入加载完成,查看在2中添加所需的表代码测试package com.mysqlTest.chen;import java.sql.*;public class JdbcFirstDemo { public static void main(String[] args) throws ClassNotFoundE
2020-09-22 15:10:08
721
原创 动态规划总结
例子参考链接: link.问题:如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?package com.szu.DP;/** * @author chen * @create 2020-08-16 22:07 *//* 硬币面值:1,3,5 凑i元需要至少硬币数dp[i]*/public class coinCountTest { public static void main(String[] args) { // 面值 int[]
2020-09-22 14:41:57
115
原创 MySQL创建自定义函数
记录狂神说MySQL的P31狂神说MySQL的P31插入百万条数据-- 插入百万条数据DELIMITER $$-- drop function if exists mock_data-- set global log_bin_trust_function_creators=TRUE;CREATE FUNCTION mock_data()RETURNS INTDETERMINISTICBEGIN DECLARE num INT DEFAULT 1000000; DECLARE i IN
2020-09-11 23:41:30
219
转载 二叉树层序遍历
套模板!BFS 和 DFS 都可以解决迭代+递归 多图演示 102.二叉树的层次遍历迭代import java.util.*; class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if(root==null) { return new ArrayList<List<Integer>>(); } List<List<Inte.
2020-08-31 12:15:43
130
转载 二叉树遍历
二叉树的前序中序后序前序:中,左,右中序:左(大小树都是找最左),中,右后序:左,中,右遍历二叉树的三种方法史上最全遍历二叉树详解详细通俗的思路分析,多解法递归解法前序遍历public static void preOrderRecur(TreeNode head) { if (head == null) { return; } // 调用一次postOrderRecur,就代表调用了一棵树 System.out.print(head.v
2020-08-31 09:50:44
111
原创 1.09 方法区
1、栈、堆、方法区的交互关系2、方法区的理解2.5.4. Method Area3、设置方法区大小与OOM4、方法区的内部结构5、方法区的使用举例方法区的使用:invokevirtual :虚方法调用6、方法区的演进细节永久代被替换的原因:1、为永久代设置空间大小是很难确定的2、对永久代进行调优是很困难的(full GC 花费很多时间)full GC 很花时间jdk7时:
2020-08-24 11:02:44
147
原创 1.08堆空间
复习1、堆的核心概述2、设置堆内存大小与OOM3、年轻代与老年代4、图解对象分配过程对象分配的特殊情况:工具:JProfiler破解版下载安装,按链接提示操作即可JProfiler115、Minor GC、Major GC、Full GCMinor GC即是Young GC(TGC)判断存活对象的存放位置,s1和s2轮流存放,每次的阈值为156、堆空间分代思想7、内存分配策略8、为对象分配内存:
2020-08-23 14:43:27
156
原创 1.05 虚拟机栈
1、虚拟机栈概述设置虚拟机栈大小:2、栈的存储单位3、局部变量表字节码中方法内部结构的剖析this 不能用于静态方法,因为this变量不存在于当前方法的局部变量表中!!4、操作数栈操作数栈:Operand stack栈:可使用数组或链表来实现5、代码追踪“iinc”操作码是直接把局部变量数组的“3”处的值增加1,而不是操作数栈栈顶的数增加1。“istore 4”是把栈顶的数存在局部变量表“4”中。6
2020-08-19 15:37:40
118
原创 1.01 JVM与Java体系结构
1、前言2、参考书目3、Java及JVM简介JVM拥有语言无关性,只关心“字节码”文件。统称为:jvm字节码4、Java发展的重大事件5、虚拟机与Java虚拟机6、JVM的整体结构7、Java代码执行流程8、JVM的架构模型字节码反编译操作package com.szu.chen;/** * @author chen * @create 2020-08-16 9:02 */// 字节码反编译操作:JVMDemo\out\productio
2020-08-16 12:05:52
95
原创 多线程
1、基本概念:程序、进程、线程程序、进程、线程程序:一段静态代码的。进程:一个正在运行的程序。是一个动态的过程:有自身的产生、存在和消亡的过程。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域。线程:进程细分为线程,是一个程序内部的一条执行路径。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(PC),线程切换的开销小。单核CPU、多核CPU单核CPU:假多线程,因为在一个时间单元内,只能执行一个线程的任务。多核CPU:真多线程,同时进行。一个jav
2020-08-15 10:39:11
189
原创 Java 8 新特性
LambdaLambda 表达式的使用举例package java8.Lambda;import org.junit.Test;import java.util.Comparator;import java.util.function.Consumer;/** @author Chen *//* 1.举例:(o1,o2)-> Integer.compare(o1,o2); 2.格式: -> :Lambda操作符 或 箭头操作符
2020-08-12 09:13:51
178
2
原创 反射
Class类反射的使用package com.ReflectionTest.common;import org.junit.Test;import java.lang.annotation.ElementType;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.re
2020-08-10 10:30:18
111
原创 java网络编程
网络编程概述网络通信要是概述通信要素1:IP和端口号IPtry { InetAddress inetAddress = InetAddress.getByName("192.186.0.1"); System.out.println(inetAddress); InetAddress inetAddress1 = InetAddress.getByName("www.baidu.com"); System.out.println(inetAddre
2020-08-07 15:09:49
107
原创 IO流总结---节点流、缓冲流、转换流、标准输入输出流、打印流、数据流
节点流定义:程序用于直接操作目标设备所对应的类叫节点流节点流: FileInputStream、FileOutputStream、 FileReader、 FileWriterFileReader public void test() throws IOException { // 路径,相较于当前module,如果是在main()中则相较于当前工程 // 1、实例化File类的对象,指明要操作的文件 File file = new File("src\\com\\IO\\
2020-08-06 16:58:20
275
原创 集合和泛型
集合和泛型集合的API分支主题 4集合List(interface)ArrayList无自动字母排序没有sort()优点:成本低,插入末尾或者指定位置LinkdListVectorSet(interface)HashSet如何判断相等依据hashCode()没被覆盖时,依据内存位置计算若两对象的hashcode相等,则再调用equals()来判断是否真的相等若hashCode()没有重写过,则堆上的两个对象永远不可能相等若equals
2020-08-01 11:26:39
102
原创 远程部署的RMI
远程部署的RMI远程程序调用(Remote Method Invocation, RMI)调用远程机器上的对象远程过程调用的设计创建出4种东西服务器客户端服务器辅助设计客户端辅助设计1、创建客户端和服务器应用程序1、服务器应用程序是个远程服务,是个带有客户端会调用的方法的对象2、创建客户端和服务器端的辅助设施(helper)客户端–>客户端辅助设施<—>服务器辅助设施–>服务器调用方法的过程1、客户端对象对辅助设施对象调用doBigThing()2、
2020-08-01 11:25:15
221
原创 接口与内部类
接口与内部类接口对类的一组需要描述,这些类要遵从接口描述的统一格式进行定义接口的特性1、接口中的方法自动地被设置为public2、接口中的域被自动设为public static final为什么需要接口?每个类只能拥有一个超类,但却可以实现多个接口接口与抽象类为什么不用抽象类替代接口?每个类只能扩展一个类,但可以实现多个接口对象克隆拷贝与克隆拷贝:拷贝一个对象,仅是拷贝了对象的引用克隆:克隆一个对象,是完全copy一个对象自带cloneEmployee copy =
2020-08-01 11:24:32
117
原创 包、jar存档文件和部署
包、jar存档文件和部署部署应用程序部署的选择本机 Executable Jar(Java ARchive 存档)两者之间的组合:Web Start 、RMI app远程 HTTPExecutable Jar将源代码与类文件(编译过的)分离项目目录MyProjectsource.javaclasses.class把类包进包中用包防止类名称的冲突-d处于source路径位置则:javac -d …/classes *.java
2020-08-01 11:23:39
160
原创 Java集合框架概述
Java集合框架概述对多个对象的存储数组弊端(故需要集合)数组在内存存储方面的的特点1、一旦初始化以后,其长度就确定了2、数组一旦定义好,其元素的类型也就确定了。我们也只能操作指定类型的数据了,比如String[] arr; int[] arr1;数组在存储数据方面的弊端1、一旦初始化以后,其长度就不可修改2、数组中提供的方法有限,对于添加、删除、插入数据等操作、非常不便,效率不高。3、元素个数,没有现成属性或者方法使用4、数组存储数据的特点:有序、可重复。对于无序、不可重复的需求
2020-08-01 11:18:26
130
原创 集合相关习题
集合相关习题习题如何遍历Map的key集,value集,key-value集,使用上泛型// 如何遍历Map的key集,value集,key-value集,使用上泛型 public void test() { HashMap<String, Integer> map = new HashMap<>(); map.put("AA", 123); map.put("BB", 456); // 遍历key集 Set<String
2020-08-01 11:13:02
454
原创 区块链学习笔记记录( 1. 密码学及加密货币概述)
侵权请联系我,即删1. 密码学及加密货币概述1.1 密码学哈希函数1.2哈希指针及数据结构1.3数字签名1.4 公钥即身份1.5 两种简单的加密货币1. 密码学及加密货币概述1.1 密码学哈希函数哈希函数具有以下三个特性:其输入可为任意大小的字符串产生固定大小的输出它能进行有效计算,对应n位字符串,其哈希值计算的复杂度为O(n)要使哈希函数达到密码安全,要求其具有以下三个附加特性...
2019-08-21 14:15:21
361
原创 MATLAB遍历子文件夹及其下jpg文件(三层目录)
首先感谢子辰曦大神写的“MATLAB遍历子文件夹及其下文件”MATLAB遍历子文件夹及其下文件以下是本人的一点改进(一)文件目录结构/maindir|-- subdir1|-- subsubdir1|-- datafile1.jpg|-- datafile2.jpg|-- subdir2|-- subsubdir2|-- datafile3.jpg|-- datafile4...
2019-07-10 20:29:52
962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人