- 博客(37)
- 收藏
- 关注
原创 LeetCode-按顺序刷题备注50-100
LeetCode-按顺序刷题备注50-10055.跳跃游戏55.跳跃游戏代码演示:class Solution { public boolean canJump(int[] nums) { //记录可以跳到最远的位置 int maxIndex = 0; for(int i = 0 ; i < nums.length ;i++){ //不断更新最远位置。 //若所能到达最远位置的数值为0,且
2021-05-08 10:10:13
319
原创 LeetCode-按顺序刷题备注1-50
LeetCode-按顺序刷题备注2.两数相加3.无重复字符的最长子串方法1:map做重复值判断方法2:滑动窗口,通过数组来替换map2.两数相加代码演示/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } *
2021-04-12 15:47:15
448
原创 JVM-类加载与字节码技术
JVM-类加载与字节码技术类结构文件magic版本常量池javap工具图解方法执行流程条件判断指令构造方法cinit 构造方法init 构造方法方法调用多态的原理synchronized编译期处理默认构造器自动拆装箱泛型集合取值可变参数foreach 循环数组循环集合循环switch 字符串try-with-resources方法重写时的桥接方法匿名内部类无引用局部变量引用局部变量类加载阶段加载链接验证准备解析初始化发生的时机类结构文件java程序// HelloWorld 示例public
2021-03-25 21:04:55
668
1
原创 JVM-垃圾回收
JVM-垃圾回收如何判断对象可以回收引用计数法可达性分析算法四种引用软引用示例软引用+引用队列示例弱引用示例垃圾回收算法标记清除标记整理复制分代垃圾回收垃圾回收步骤如何判断对象可以回收引用计数法当一个对象被引用时,引用计数+1。计数=0时,则回收。但是,这种方式存在一个问题,那就是当两个对象循环引用时,这两个对象则无法回收。pthon使用可达性分析算法Java 虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象扫描堆中的对象,看是否能够沿着 GC Root对象 为起点的引用链找到该对
2021-03-17 15:46:53
813
1
原创 JVM-内存结构
JVM-内存结构总结程序计数器定义作用虚拟机栈定义栈内存溢出线程运行诊断本地方法栈堆定义堆内存溢出演示堆内存诊断总结方法区:类(class)堆:根据类所创建的实例,也就是对象而对象在调用方法的时候,就会用到虚拟机栈,程序计数器,本地方法栈方法执行时,是由执行引擎中的解释器来进行逐行执行方法中的热点代码,也就是被频繁执行的代码,会由即时编译器进行编译,可理解为优化后的执行GC(垃圾回收):可以对堆中不再引用的对象进行垃圾回收。本地方法接口:调用操作系统底层所提供的一些方法。程序计数器
2021-03-11 21:33:26
118
原创 LeetCode部分习题解答记录-递归与回溯
LeetCode部分习题解答记录-递归与回溯17.电话号码的字母组合方法1:递归17.电话号码的字母组合方法1:递归思路:形似树形结构,某个数字代表的字符个数相当于当前层的分支数。处理下一层时,将当前节点所代表的字符串传入。直至寻找到层底,保存整体字符串。代码1:class Solution { List<String> res = new ArrayList<>(); String[] letterMap = new String[]{""
2021-03-07 10:39:25
150
原创 Spring07-AOP
Spring07-AOPAOP什么是AOPAOP在Spring中的作用使用Spring实现AOP第一种方式,使用SpringAPI实现第二种方式:自定义类来实现Aop方式3:使用注解实现AOP什么是AOPAOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔
2021-03-01 21:45:54
70
原创 Spring06-静态/动态代理模式
Spring06-静态/动态代理模式代理模式静态代理静态代理角色分析简单示例AOP动态代理相关类介绍InvocationHandler:调用处理程序proxy简单实现优点代理模式为什么要学习代理模式,因为AOP的底层机制就是动态代理!代理模式:静态代理动态代理了解代理模式静态代理静态代理角色分析抽象角色:一般使用接口或者抽象类来实现真实角色:被代理的角色代理角色:代理真实角色;代理真实角色后 ,一般会做一些附属的操作。客户:使用代理角色来进行一些操作。简单示例R
2020-12-29 15:53:09
70
原创 Spring05-使用注解开发
Spring05-使用注解开发准备工作Bean属性注入:使用注解注入属性衍生注解作用域小结XML与注解比较xml与注解整合开发 :推荐最佳实践作用:使用java的方式配置Spring基本使用导入其他配置如何做呢?准备工作在Spring4之后,要使用注解开发,必须要保证aop包的导入同时在配置文件当中,还得要引入一个context约束。Bean之前都是使用 bean 的标签进行bean注入,但是实际开发中,一般都会使用注解。指定扫描那些包下的注解 <context:compo
2020-12-28 20:16:47
87
原创 Sprint04-Bean的自动装配
Sprint04-Bean的自动装配说明三种方式实现测试autowire byName (按名称自动装配)autowire byType (按类型自动装配)使用注解实现自动装配使用注解须知autowireQualifierResource小结说明自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中为某个bean寻找其依赖的bean。三种方式Spring中bean有三种装配机制,分别是:在xml中显式配置;在java中显式配置;隐式的bean发现机制和自动装配
2020-12-28 17:27:28
253
原创 Spring02-快速上手Spring
Spring02-快速上手SpringHelloSpring修改案例一IOC创建对象的方式使用无参构造创建对象。(默认实现)使用有参构造创建对象。Spring配置alias(别名)beanimportHelloSpring编写实体类public class Hello { private String str; public String getStr() { return str; } public void setStr(String str
2020-12-27 18:34:34
180
1
原创 Spring01-概述及IOC理论推导
Spring01-概述及IOC理论推导简介组成拓展IOC理论推导之前的方式解决IOC本质简介优点:Spring是一个开源免费的框架 , 容器 .Spring是一个轻量级的框架 , 非侵入式的 .控制反转 IoC , 面向切面 Aop对事物的支持 , 对框架的支持一句话概括:Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。组成spring七大模块拓展在Spring的官网有这个介绍:现代化的java开发。实际上就是基于spring的开发
2020-12-27 17:05:09
114
原创 Mybatis06-动态SQL
Mybatis06-动态SQL动态SQL初识IFWHERECHOOSESETTRIMForeachSQL片段动态SQL初识动态SQL:根据不同的条件生成不同的SQL语句。在SQL的逻辑上生成不同的SQL语句。IF传入类型为map,根据map中是否有相应的键值对来判断执行IFBlogMapper.xml <select id="queryBlogIf" parameterType="map" resultType="blog"> select * from
2020-12-22 15:42:53
103
原创 Mybatis05-一对多和多对一处理
Mybatis05-一对多和多对一处理多对一的处理查询嵌套处理按照结果嵌套处理一对多的处理根据嵌套查询方式根据结果嵌套查询总结多对一的处理将配置文件等完成查询嵌套处理思路1. 查询所有的学生信息2. 根据所有的学生tid,查询对应的老师StudentMapper.xml <select id="getStudent" resultMap="Student_Teacher"> select * from student; </select>
2020-12-20 20:39:51
89
原创 Mybatis04-使用注解开发
Mybatis04-使用注解开发注解开发的简单使用注解开发的简单使用我们在我们的接口中添加注解public interface UserMapper { @Select("select * from user") List<User> getUsers();}在核心配置文件中注入 <!--绑定接口--> <mappers> <mapper class="com.byx.dao.UserMapper"/&g
2020-12-20 16:31:28
92
原创 Mybatis03-ResultMap,日志,分页
Mybatis03-ResultMap,日志,分页需要解决的问题:属性名与字段名不一致问题描述解决方法日志日志工厂LOG4J分页需要解决的问题:属性名与字段名不一致问题描述当User中属性名与数据库中字段名不一致,会出现查询不到该属性的情况。(实际上sql语句查询时候取的set与get方法的属性名,即setXX与getXX,sql取得是XX。假设属性名与password,但是这两个方法为setPwd与getPwd,实际上还是可以查到,此处不讨论这种情况。)User类数据库字段从上述两张图可
2020-12-15 21:18:26
97
原创 Mybatis02-CRUD操作及配置解析
Mybatis02-CRUD操作及配置解析CURD操作xml配置模糊查询如何实现?配置解析属性(properties)类型别名(typeAliases)映射器(mappers)生命周期和作用域CURD操作xml配置在前文中,已经分析了Mybatis如何简单的连接数据库并根据配置进进行操作,后面进行CRUD操作的简单使用极其优化。xml文件<mapper namespace="com.byx.dao.UserDao"> <select id="getUserList"
2020-12-15 19:26:49
92
原创 Mybatis-01初步使用
Mybatis-01初步使用Maven配置:Mybatis使用创建mybats-config.xml核心配置文件mybaitisUtils工具类通过xml来具体实现Dao接口,功能与Dao实现类类似。可能出现的问题:Maven静态资源过滤问题。测试类:Maven配置:通过Maven导入响应的jar包<!--导入依赖--> <dependencies> <!--mysql驱动--> <dependency>
2020-12-14 16:28:09
75
原创 LeetCode部分习题解答记录-栈与队列篇
LeetCode部分习题解答记录-链表篇20.有效的括号150.逆波兰表达式求值71.简化路径20.有效的括号方法1:首先,如果字符的长度为奇数,说明肯定不匹配;通过Map集合建立符号的匹配;便利字符串,将左括号压入,右括号进行判断class Solution { public boolean isValid(String s) { int n = s.length(); if(n % 2 == 1){ return false;
2020-12-01 20:46:09
262
原创 LeetCode部分习题解答记录-链表篇
LeetCode部分习题解答记录-链表篇206.反转链表92.反转链表II83.删除排序链表中的重复元素86.分隔链表328.奇偶链表2.两数相加445.两数相加二206.反转链表方法1:可以理解为将每个指针反转./** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; }
2020-11-14 09:43:27
311
1
原创 JavaEE随笔-Cookie&&Session
JavaEE随笔-Cookie&&Session会话技术Cookie会话技术1. 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止2. 功能:在一次会话的范围内的多次请求间,共享数据3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:SessionCookie概念:客户端会话技术,将数据保存到客户端当服务器第一次响应给客户端发送了一些数据,客户端保存在本地,浏览器第二次请求将这
2020-11-10 20:36:59
131
原创 JavaEE随笔-HTTP
JavaEE随笔-HTTPHTTP请求消息数据格式响应消息数据格式request对象与response对象的原理requsetHTTP基本概念 * 概念:Hyper Text Transfer Protocol 超文本传输协议 * 传输协议:定义了,客户端和服务器端通信时发送数据的格式 * 特点: 1. 基于TCP/IP的高级协议 2. 默认端口号:80 3. 基于请求/响应模型的:一次请求对应一次响应 4. 无状态的:每次请求之间相互独立,不能交互数
2020-11-03 18:03:17
521
原创 LeetCode部分习题解答记录-查找
LeetCode部分习题解答记录-查找349.两个数组的交集350. 两个数组的交集 II349.两个数组的交集方法1:使用HashSetclass Solution { public int[] intersection(int[] nums1, int[] nums2) { HashSet<Integer> hs = new HashSet<>(); int[] ans = new int[Math.min(nums1.lengt
2020-10-28 10:11:52
199
原创 JavaEE随笔-Servlet初步学习
JavaEE随笔-Servlet初步学习Servlet初步学习Servlet3.0版本Servlet初步学习基础知识 * 概念:运行在服务器端的小程序 * Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。 * 将来我们自定义一个类,实现Servlet接口,复写方法。 * 快速入门: 1. 创建JavaEE项目 2. 定义一个类,实现Servlet接口 * public class ServletDemo1 implem
2020-10-26 11:18:21
140
原创 JDBC随笔-连接池及Template
JDBC随笔-连接池及Template数据库连接池初步了解Spring JDBC数据库连接池基础概念 1. 概念:其实就是一个容器(集合),存放数据库连接的容器。 当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访 问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。 2. 好处: 1. 节约资源 2. 用户访问高效 3. 实现: 1. 标准接口:DataSource javax.sql包下的 1. 方法:
2020-10-19 20:05:17
118
原创 JDBC随笔-快速入门
JDBC随笔-快速入门JDBC快速入门JDBC各类详解JDBC快速入门代码演示初步使用JDBCpublic class JdbcDemo1 { public static void main(String[] args) throws Exception{ //1.导入Java包 //2.注册驱动,在mysql5的驱动jar包可以省略注册驱动的步骤 Class.forName("com.mysql.jdbc.Driver");
2020-10-19 15:43:48
133
原创 数据库随笔-1NF,2NF,3NF详解
数据库随笔-1NF,2NF,3NF详解基础概念通过表的更新来举例说明总结基础概念1. 第一范式(1NF):每一列都是不可分割的原子数据项2. 第二范式(2NF):在1NF的基础上,非码属性必须完全依赖于码(在1NF基础上消除非主属性对主码的部分函数依赖) * 几个概念: 1. 函数依赖:A-->B,如果通过A属性(属性组)的值,可以确定唯一B属性的值。则称B依赖于A 例如:学号-->姓名。 (学号,课程名称) --> 分数 2. 完全函数依赖:A-->B,
2020-10-15 12:38:34
1107
1
原创 javaSE随笔-junit、反射、注解
junit、反射、注解Junit单元测试:反射:框架设计的灵魂注解Junit单元测试:基础知识 * 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。不注重代码内部逻辑,只注重输入输出值正确与否。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。关注代码的内部逻辑,测试具体方法是否正确,例如Junit,在代码演示相关代码中,我们使用了白盒测试来测试相应add()与sub()方法是否正确。 * Junit使用:白盒测试 * 步骤:
2020-10-13 10:45:38
66
原创 LeetCode部分习题解答记录-数组篇
LeetCode数组部分习题解答记录1.两数之和167.两数之和Ⅱ26.删除排序数组中的重复项80.删除排序数组中的重复项Ⅱ27.移除元素75.颜色分类88.合并两个有序数组125.验证回文串215.数组中的第K个最大元素283.移动零1.两数之和方法1:使用HashMap,键为元素,值为索引。class Solution { public int[] twoSum(int[] nums, int target) { int[] index = new int[2];
2020-10-09 20:22:20
171
原创 JAVA随笔-lambda
lambdalambda表达式1.格式2.使用前提3.示例4.省略模式lambda表达式1.格式(形式参数) -> {代码块}形式参数:如果有多个参数,参数之间用逗号隔开;如果没有参数,留空即可–>:由英文中画线和大于符号组成,固定写法。代表指向动作代码块:是我们具体要做的事情,也就是以前我们写的方法体内容2.使用前提有一个接口接口中有且仅有一个抽象方法3.示例// 接口public interface Addable { int add(int x,in
2020-08-10 21:19:59
80
原创 JAVA随笔-网络编程
JAVA随笔-网络编程UDPTCPUDP发送端//创建socket对象->创建数据并打包->发送->关闭public class UdpSendDemo { public static void main(String[] args) throws IOException { //创建发送端的Socket对象 DatagramSocket ds = new DatagramSocket(); //创建数据
2020-08-07 21:02:36
102
原创 JAVA随笔-多线程
JAVA随笔-多线程实现多线程1.理解2.实现方式2.1 实现方式1:继承Thread类2.2 Runnable实现3 线程名称3.1 Thread实现3.2 Runnable实现(如上)4 线程优先级5.线程控制6 线程生命周期线程同步1.三个窗口卖票的简单应用(不合理)2.同步代码块的应用3. 同步方法的应用4.线程安全的类实现多线程1.理解进程:是正在运行的程序,是系统进行资源分配和调用的独立单位,每一个进程都有它自己的内存空间和系统资源线程:是进程中的单个顺序控制流,是一条执行路径单
2020-08-07 15:57:13
237
原创 JAVA随笔-Collection
javaCollection-随笔集合的体系结构Collection迭代器List集合List集合的子类Set集合HashSet集合集合的体系结构Collection迭代器1.迭代器:集合的专用遍历方式,依赖于集合存在// 迭代器Iterator<Student> it = collect.iterator();等式的左边返回的为一个迭代器对象,赋予迭代器变量itList集合1.注意事项,并发修改异常// 迭代器异常ConcurrentModificationExcep
2020-08-03 17:36:07
267
原创 JAVA随笔-多态
java多态多态的要点:代码示例非静态静态结果分析多态的要点:多态是方法的多态,不是属性的多态(多态与属性无关)。多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。代码示例非静态// 父类class Animal { public void shout() { System.out.println("叫了一声!"); }}// 子类class Dog exte
2020-07-10 17:11:22
149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人