自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 分布式简介+Dubbo+zookeeper

文章目录分布式理论RPCDubboDubbo基本概念zookeeperSpringBoot+Dubbo+zookeeper整合Dubbo-admin整合分布式理论在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”;分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。分布

2020-11-12 15:51:08 148

原创 SpringMVC学习笔记

文章目录

2020-10-15 16:00:12 206 1

原创 Mybatis学习记录

文章目录一、mybatis概念1、什么是mybatis2、如何获得mybatis3、持久化,持久层的概念4、为什么要用mybatis5、使用Mybatis遇到的工程问题汇总二、一个mybatis实例1、搭建环境2、编写Mybatis工具类3、编写代码4、Junit测试5、测试中遇到的问题一、mybatis概念1、什么是mybatisMyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解

2020-10-12 16:10:36 135

原创 Java后端学习笔记

一、Java基础二、前端基础htmlcssJavaScriptjQuery三、JavaWeb基础TomcatServletJSON和Ajax四、数据库MySQLRedisJDBCJDBCUtils数据库连接池DruidMyBatisMyBatis-plus五、Spring frameworkSpring IOCSpringBean管理Spring AOPSpring JdbcTemplateSpring 事务六、Spring MVC七、Spring Boot

2020-10-07 21:51:59 215

原创 Spring学习之事务操作

文章目录事务概念搭建事务环境事务管理介绍注释式声明事务管理Spring配置文件事务管理参数设置XML式声明事务管理完全注解声明式事务管理事务概念事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败搭建事务环境1、创建数据库表,添加记录2、创建service,搭建dao,完成对象创建和注入关系——service注入dao,在dao注入JdbcTemplate,在JdbcTemplate注入DataSource3、在dao创建两个方法:多钱和少钱的方法,在servic

2020-10-06 15:23:02 87

原创 Spring学习之JdbcTemplate

文章目录什么是JdbcTemplateJdbcTemplate操作数据库增、删、改查批量操作代码什么是JdbcTemplateSpring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作JdbcTemplate操作数据库增、删、改调用JdbcTemplate对象里面update方法实现增删改操作@Override public void add(User user) { String sql = "insert into t_user values

2020-10-06 10:04:22 245 1

原创 Spring学习之AOP

Aop概念1、什么是AOP(1)面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。(2)通俗描述:不通过修改源代码方式,在主干功能里面添加新功能2、Aop底层原理(1)有接口,使用JDK动态代理(2)无接口,使用CGLIB动态代理Aop(JDK动态代理)1、使用JDK动态代理,使用Proxy类里面的方法创建代理对象调用newProxyInstance方法方法有三个参数:第一参数,类加载器

2020-10-05 19:49:37 84

原创 Spring学习之 IOC容器

文章目录springIOC容器IOC概念和原理Spring提供IOC容器实现的两种方式Bean管理IOC操作Bean管理(基于xml方式)IOC操作Bean管理(注入对象)IOC操作Bean管理(注入集合属性)IOC操作Bean管理(外部属性文件)Bean作用域Bean生命周期IOC Bean管理(基于注解)完全注解开发b站Spring5笔记:https://www.bilibili.com/video/BV1Vf4y127N5spring1、Spring是轻量级的开源的JavaEE框架2、Spr

2020-10-05 15:45:16 139

原创 JDBC——Java Database Connectivity

花了一天时间在b站看的黑马的教学视频,粗略记了点笔记文章目录一、JDBC简介思想IDEA配置JDBCJDBC驱动类型二、快速入门:连接数据库三、JDBC的一些重要接口DriverManagerConnectionStatementResultSetPrepareStatement四、JDBC来控制事务代码五、数据库连接池实现C3P0DruidSpring jdbc一、JDBC简介思想分层思想在 Java 上面只有一种数据库连接统一接口——JDBC。JDBC 为数据库开发人员提供了一个标准的 AP

2020-09-24 11:49:57 103

原创 66-70 加一 - 二进制求和 - 文本左右对齐 - x的平方根 - 爬楼梯

文章目录66. 加一67. 二进制求和68. 文本左右对齐 (困难)69. x的平方根70. 爬楼梯66. 加一easy题public class No66 { public int[] plusOne(int[] digits) { int len = digits.length; int carry = 0; for(int i = len - 1; i >= 0; i--){ int a = digits[i]

2020-09-21 11:50:33 105

原创 面试常问的海量数据问题

文章目录提取出某日访问网站次数最多的那个IP或者n个IP10亿个整数找出重复次数最多的100个整数搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前10条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G。提取出某日访问网站次数最多的那个IP或者n个IP算法思想:分而治之+HashIP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理,所以需对大的文件进行切割。在分割文件时必须使相同的IP保存到同一个文件中,可以采用取模操作。取模算法:因为每个IP(相当

2020-09-16 11:49:42 202

原创 面试手撕代码(8)——大数问题

文章目录大数相乘大数相加减大数阶乘大数相乘//AB * CD = AC (AD+BC) BDpublic class BigIntMultiply { public static void main(String[] args) { String a="67"; String b="89"; System.out.println(multiply(a,b)); } public static String multiply(St

2020-09-15 17:40:11 167

原创 面试手撕代码(7)—— 字符串合集

文章目录剑指offer剑指38. 字符串排列剑指20. 表示数值的字符串剑指46. 把数字翻译成字符串剑指67. 把字符串转换成整数leetcode647. 回文子串动态规划中心扩散5. 最长回文子串动态规划中心扩散214. 最短回文串409. 最长回文串131. 分割回文串132. 分割回文串 II递归备忘录动态规划1328. 破坏回文串76. 最小覆盖子串滑动窗口结合hashmap滑动窗口结合数组1044. 最长重复子串程序员面试经典面试题17.18 最短超串剑指offer剑指38. 字符串排列

2020-09-14 11:30:00 299

原创 面试手撕代码(6)

文章目录如何判断一个字符串是数字如何判断一个字符串是数字public class Main11 { public static void main(String[] args) { String s1 = "-12418413212"; System.out.println(isInteger(s1)); } //只能判断正整数 public static boolean isNumeric(String str) { fo

2020-09-12 21:22:18 463

原创 多线程并发复习汇总

文章目录基础知识并发编程的三个重要特性(Java中)线程有哪些基本状态?进程线程的区别sleep和wait的异同线程类的构造方法、静态块是被哪个线程调用的并发理论如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?为什么代码会重排序?并发关键字Synchronized作用如何使用Synchronizedsynchronized的底层实现JDK1.6 synchronized的底层优化Synchronized 和 ReenTrantLock 的对比volatile关键字的语义说说 synch

2020-08-28 20:45:43 238

原创 JVM复习汇总

文章目录JVM基础什么是java虚拟机?为什么java 平台无关性?机器码和字节码的区别Java内存区域Java内存模型(JMM)JVM的主要组成部分和作用Java内存结构 or 内存分区 or 运行时数据区域方法区和永久代的关系为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?运行时常量池——重点说一下堆栈的区别?PS:静态变量放在方法区,静态的对象还是放在堆String类和常量池(待解决)深拷贝和浅拷贝对象的创建为对象分配内存对象的内存布局(待解决)对象的访问定位——句柄和

2020-08-28 20:44:55 209

原创 计算机网络复习汇总

文章目录HTTP状态码GET 和 POSTHTTPS对称加密和非对称加密HTTP,HTTPS建立过程HTTP和HTTPS的区别请你讲讲http1.1和1.0的区别什么是断点续传HTTP2和HTTP1区别请你说明一下,SSL四次握手的过程——重点讲述一下浏览器输入URL,到显示页面经历哪些过程DNS劫持?基础DDoS攻击和预防——重点MTU是什么?MMS是什么?TCP协议如何来保证传输的可靠性UDP如何实现可靠性传输OSI七层模型TCP的流量控制Cookie,session的应用场景Cookie和Sessio

2020-08-28 20:43:36 228 2

原创 面试手撕代码(5)

文章目录93. 复原ip地址回溯468. 验证ip地址ip地址字符串转换成32位整数83. 删除排序链表里的重复元素剑指offer36. 二叉树与双向链表328. 奇偶链表560. 和为k的子数组114. 二叉树展开为链表300. 最长上升子序列4. 寻找两个正序数组的中位数二分法93. 复原ip地址回溯第一部分可能是1,2,3位数,然后递归下去,典型dfspublic class No93 { public List<String> restoreIpAddresses(Str

2020-08-28 12:07:52 117

原创 面试手撕代码(4)

文章目录69. x的平方根二分法求整数解牛顿法求精确解反推浮点数开方二分法牛顿法145. 二叉树的后序遍历用栈模拟169. 多数元素460. LFU缓存31. 下一个排列24. 两两交换链表中的节点48. 旋转图像283. 移动0151. 反转字符串里的字符221. 最大正方形69. x的平方根实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。二分法求整数解public class No6

2020-08-28 10:31:12 345

原创 面试手撕代码(3)

128.最长连续序列958.二叉树的完全性检验62. 不同路径162.寻找峰值322.零钱兑换23.合并k个排序链表41.寻找第一个缺失的正数101.对称二叉树200.岛屿数量155.最小栈

2020-08-18 10:49:49 161

转载 经典笔试面试题(1)

高楼扔鸡蛋

2020-08-16 09:33:26 63

转载 MySQL学习笔记(2)连接查询

文章目录sql192标准1、等值连接2、非等值连接3、自连接sql199标准【推荐】sql192标准1、等值连接①多表等值连接的结果为多表的交集部分②n表连接,至少需要n-1个连接条件③多表的顺序没有要求④一般需要为表起别名⑤可以搭配前面介绍的所有子句使用,比如排序、分组、筛选#案例2:查询员工名和对应的部门名SELECT last_name,department_nameFROM employees,departmentsWHERE employees.`department_i

2020-08-15 10:13:50 112

原创 MySQL学习笔记(1)基础查询

文章目录查询模糊查询like:一般和通配符搭配使用between andinis null / is not null<=> 安全等于常见函数1.length 获取参数值的字节个数2.concat 拼接字符串3.upper、lower4.substr、substring数学函数日期函数分组查询group by分组函数查询模糊查询like:一般和通配符搭配使用% 任意多个字符,包含0个字符_ 任意单个字符#案例1:查询员工名中包含字符a的员工信息select * from em

2020-08-14 16:19:28 126

原创 面试手撕代码(2)

文章目录124. 二叉树最大路径和——后序遍历+全局变量234.回文链表——快慢指针,反转链表33.搜索旋转排序数组——二分查找543.二叉树的直径——后序遍历+全局变量两个栈实现队列——栈105.前序中序遍历构造二叉树——hashmap,递归53.最大子序和——dpdpdp优化94.二叉树中序遍历——莫里斯遍历(重点)破坏结构的版本不破坏树的原始结构110.平衡二叉树——后序遍历+剪枝20.有效的括号——栈88.合并两个有序数组103.锯齿形遍历209.长度最小的子数组141-142.环形链表113. 路

2020-08-14 11:37:24 521

原创 面试手撕代码(1)

字节跳动

2020-08-13 17:33:48 379

原创 46-50 全排列 - 全排列II - 旋转图像 - 字母异位词分组 - Pow(x, n)

46. 全排列题目:给定一个 没有重复 数字的序列,返回其所有可能的全排列。思路:回溯用一个boolean数组,空间换时间public List<List<Integer>> permute(int[] nums) { int len=nums.length; List<List<Integer>> res=new ArrayList<>(); if(len==0) return res; boolea

2020-08-13 16:19:32 144

原创 61-65 旋转链表-不同路径-不同路径2-最小路径和-有效数字

61. 旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。思路:对k求链表长度的mod,n = k % length,然后把后面n个节点移到前面就行了/** * @author KyrieLuo * @create 2020/8/4-22:20 */public class No61 { public ListNode rotateRight(ListNode head, int k) { if(head == null||k==

2020-08-13 16:07:01 105

原创 ThreadLocal原理

Thread为每个线程维护了ThreadLocalMap这么一个Map,属于线程的内部属性,不同的线程拥有完全不同的ThreadLocalMap变量,而ThreadLocalMap的key是LocalThread对象本身,value则是要存储的对象ThreadLocalMap是ThreadLocal的内部类,用Entry来进行存储调用ThreadLocal的set()方法时,实际上就是往ThreadLocalMap设置值,key是ThreadLocal对象,值是传递进来的对象调用ThreadLoca.

2020-08-13 11:20:41 113

原创 Java实现生产者消费者

文章目录使用Object的wait() / notify()方法Lock配合Condition使用Object的wait() / notify()方法对queue上锁import java.util.LinkedList;import java.util.Queue;import java.util.Random;/** * @author KyrieLuo * @create 2020/8/6-11:10 */public class ProducerConsumer { p

2020-08-06 11:45:37 79

原创 56-60 合并区间-插入区间-最后一个单词的长度-螺旋矩阵 II - 第k个排列

56. 合并区间重点是要完成区间的排序,然后用一个List来保存结果Arrays.sort(intervals, (x,y)->x[0]-y[0]);每次新遍历到的列表与当前结果集中的最后一个区间的末尾端点进行比较注意toArray的用法,写成0效果是一样的res.toArray(new int[res.size()][]);res.toArray(new int[0][]);public int[][] merge(int[][] intervals) { int le

2020-08-04 15:59:19 143

原创 51-55 N皇后 - N皇后 - 最大子序和 - 螺旋矩阵 - 跳跃游戏

51. N皇后(困难)回溯思路:按行添加皇后,所以行不会发生冲突ArrayList currentQueen,这个是用来存列的index,用一个简单的条件判断语句就能使得currentQueen中不含相同的值,即不发生列冲突那怎么避免对角线冲突呢?这里需要一个小技巧,isDiagonalAttack就是用来判断是否发生对角线冲突的,获取当前所在行和列,遍历在此之前的每一行,因为之前每一行都是存了currentQueen的值的,所以只要遍历过程判断只要有任意一行的点和当前点满足对角线(横坐标纵坐标

2020-08-04 11:19:48 130

原创 Java读写文件

文件读取按字符读取如果我们要取的数据基本单位是单个字符,那么用这种方法读取文件就比较适合。利用FileReader中的read()方法FileReader.read(char[] cbuf),参数——cbuf是目标缓冲区;返回——读取的字符串数量,如果已达到末尾则返回-1。int num=0;char[] buf=new char[1024];//打开文件FileReader fr = new FileReader("text.txt");//取出字符存到buf数组中while((n

2020-08-03 10:27:07 88

原创 41-45 缺失的第一个正数 - 接雨水 - 字符串相乘 - 通配符匹配 - 跳跃游戏 II

41.缺失的第一个正数42.接雨水43.字符串相乘45.跳跃游戏 II

2020-08-02 15:56:16 134

原创 36-40 有效的数独 - 解数独 - 外观数列 - 组合总和 - 组合总和 II

38. 外观数列递归我们要求第n个外观数列,一定要获得第n-1个外观数列public String countAndSay(int n) { if(n == 1){ return "1"; } String last = countAndSay(n - 1);//得到上一行的字符串 return getNextString(last);//输出当前行的字符串}public String getNextString(String last){

2020-08-02 12:57:12 260

原创 31-35 下一个排列 - 最长有效括号 - 搜索旋转排序数组 - 排序数组中查找元素的第一个和最后一个位置 - 搜索插入位置

31. 下一个排列从右向左找到第一个数字不再递增的位置设为nums[i],然后在nums[i]右边找到一个刚好大于当前位的数字nums[j]交换然后还要将nums[i]右边的数字sort一下就Ok了由于从右向左是递增的,所以可以写一个倒序函数来sort,或者直接用Arrays.sort也行//有一点单调栈的思想在里面//我们其实是从右向左找到第一个数字不再递增的位置,然后从右边找到一个刚好大于当前位的数字即可。public static void nextPermutation(int[]

2020-08-02 09:43:50 95

原创 26-30删除排序数组中的重复项/移除元素/实现 strStr()/两数相除/串联所有单词的子串

26. 删除排序数组中的重复项典型快慢指针:i 指针从 0 开始,j 指针从 1 开始,如果 i 和 j 所指数字相等,就一直后移 j 。如果不相等,i 指针后移一位用来保存当前 j 所指的值,然后继续回到 j 的后移中去。public int removeDuplicates(int[] nums) { if (nums.length == 0) return 0; int i = 0; for (int j = 1; j < nums.length; j++)

2020-08-01 11:39:06 83

原创 6-10 Z 字形变换(未完成)/整数反转/字符串转换整数/回文数/正则表达式匹配

6. Z 字形变换

2020-07-31 10:45:02 156

原创 21-25合并两个有序链表/括号生成/合并K个排序链表/两两交换链表中的节点/K 个一组翻转链表

21. 合并两个有序链表public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode prehead = new ListNode(-1);//哨兵 ListNode pre = prehead; while( l1 != null && l2 != null ){ if(l1.val <= l2.val ){ pre.next = l1;

2020-07-31 10:38:13 109

原创 16-20最接近的三数之和/电话号码的字母组合/四数之和/删除链表的倒数第N个节点/有效的括号

14. 最长公共前缀纵向比较把所有字符串一排一排放置,比较每一列是否相等时间O(mn),空间O(1)public String longestCommonPrefix(String[] strs) { if (strs == null || strs.length == 0) { return ""; } //第一个字符串的长度 int length = strs[0].length(); int count = strs.length;

2020-07-31 09:53:30 100

原创 11.-15盛最多水的容器/整数转罗马数字/罗马数字转整数/最长公共前缀/三数之和

11. 盛最多水的容器双指针长度和高度决定容量,如果想面积更大只能减小长度,增加高度。是左边的柱子向右移动还是右边的柱子向左移动?当然是哪边的柱子短就改哪边的,只有这样,高度才有可能有增加的趋势。时间复杂度:O(n),空间复杂度:O(1)public int maxArea(int[] height) { if(height==null||height.length==0){ return 0; } int left=0; int right=he

2020-07-30 14:35:43 89

空空如也

空空如也

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

TA关注的人

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