自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unix环境高级编程apue.h头文件安装

今天在公司学习unix高级编程,发现头文件apue.h是作者自己写的,为了敲例子必须要装一个。下载首先su进入管理员模式,否则后续cp的权限不够创建文件夹并cd到该目录下,随后开始下载下载完成后解压等待解压完成安装ls可以看到文件下多了一个apue.3e文件cd到这个文件下开始cp至此完成vscode中已不在报错...

2020-06-02 16:46:47 446

原创 HashMap JDK1.7和1.8区别(完整版)

不说废话了,开门见山,看网上的总结都比较片面,整个全乎的。存储方式这点大家耳熟能详,JDK1.7采用的是数组+链表的形式,而JDK1.8在数组容量大于64且链表长度大于8的情况下会使用红黑树。源码里也有很详细的解释,这里不过多赘述。详情可以参考我另一篇博客HashMap部分源码的理解初始化方式在JDK1.7中,table数组默认值为EMPTY_TABLE,在添加元素的时候判断tabl...

2020-05-07 23:06:13 5621 1

转载 TCP,UDP消息边界

在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。对于UDP,不会使用块的合...

2020-04-06 15:01:58 790

原创 关于iterator迭代器是fail-fast机制

没弄清楚到底是结构发生改变还是元素改变抛出异常故做以下验证public static void main(String[] args) { Person p1 = new Person(10, "xl"); Person p2 = new Person(11, "xm"); Person p3 = new Person(12, "xs"); ...

2020-03-25 11:14:23 374

原创 二叉树的最小深度踩坑

今天做题的时候做到leetcode 111,二叉树最小深度。看了一眼以为可以秒杀(我太天真了)写下如下代码 return root == null ? 0 : Math.min(minDepth(root.left),minDepth(root.right))+1;然后。。。gg了原因是当存在这样左子树或者柚子树为空的情况下,使用如上代码输出为1,但1是有子节点的,所以不符合最小深...

2020-03-16 10:36:02 177 1

原创 kafka启动Initial heap size set to a larger value than the maximum heap size报错(windows系统)

今天学习kafka过程中遇到如上报错无法启动措施:用Notepad++打开kafka-server-start.bat,并修改红线处值 调整堆内存大小运行成功

2020-03-11 15:52:20 10338

原创 HashMap源码学习

带着几个问题:众所周知在jdk 1.8 hashmap的数据结构变成了链表+数组+红黑树,那么相比于原本的链表和数组的结构,优点在哪?哈希碰撞如何解决?扩容时机和扩容原理?ConcurrentHashMap是如何实现线程安全的?直接看代码吧几个参数:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //默认初始容...

2020-03-05 14:48:37 717

原创 Mysql事务特性的底层实现浅谈

Mysql四大特性:1、原子性(Atomic):事务中所有数据的修改,要么全部执行,要么全部不执行。2、一致性(Consistence):事务完成时,要使所有所有的数据都保持一致的状态, 换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。3、隔离性(Isolation):事务应该在另一个事务对数据的修改前或者修改后进行访问。4、持久性(Durability):保证事务对数据...

2020-02-26 11:08:55 241

原创 volatile的应用和原理初探

volatile 也就是JVM提供的轻量级的同步机制有如下三个特性:1、保证可见性可见性的意思是当一个线程 修改一个共享变量时,另外一个线程能读到这个修改的值volatile是如何来保证可见性的呢?让我们在X86处理器下通过工具获取JIT编译器生成的 汇编指令来查看对volatile进行写操作时,CPU会做什么事情。Java代码如下。instance = new Singleton()...

2020-02-21 22:00:38 168

原创 生产者消费者问题

1.使用传统synchronizedpublic class pc { public static void main(String[] args) { Data data=new Data(); new Thread(()->{ for (int i = 0; i < 10; i++) { ...

2020-02-20 13:30:33 160

原创 链表快慢指针

两道题:1.剑指offer倒数第k个数思路:一个快指针,一个慢指针,让快指针先走k步,然后一起出发,等快指针到头的时候,慢指针所在的位置就是倒数第k个数代码:class Solution { public ListNode getKthFromEnd(ListNode head, int k) { ListNode frontNode=head; L...

2020-02-14 23:48:14 123

原创 单例模式实现

单例模式分为饿汉式和懒汉式代码实现:饿汉式:所谓饿汉式,也就是不管能不能用的上,都会加载,像一个恶汉,如果在构造方法里写了性能消耗较大,占时较久的代码,比如建立与数据库的连接,那么就会在启动的时候感觉稍微有些卡顿。private Singleton1{}private static Singleton1 instance=new Singleton1();public static S...

2020-02-11 17:20:04 156

转载 虚拟机栈和本地方法栈

虚拟机栈栈区:栈中分配的是基本类型和自定义对象的引用。每个线程包含一个栈区,栈中只保存基础数据类型和自定义对象的引用(不是对象),对象都存放在堆区中每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。栈是存放线程调用方法时存储局部变量表,操作,方法出口等与方法执行相关的信息,栈大小由Xss来调节,方...

2020-02-10 09:25:57 455

原创 leetcode 36 数独

算是独立写出来的第一题…dont you quit!其实很简单 每行遍历 每列遍历 每个3*3方块遍历 只要有相同的就返回false我第一次觉得boolean在判断重复(例如字符串重复字串)问题上这么好用…class Solution { public boolean isValidSudoku(char[][] board) { if(board==null||b...

2020-02-09 17:10:50 217

原创 使用非递归方式遍历二叉树

补数据结构算法中,发现Leetcode也有遍历二叉树的习题,特来码一下前序创建辅助栈,每次迭代弹出根节点,并按照右 左的顺序压入栈,故出栈时为,根 左 右,符合前序遍历class Solution { public List<Integer> preorderTraversal(TreeNode root) { Stack<TreeNode> ...

2020-02-07 16:32:25 261

原创 leetcode 三数之和

class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res=new ArrayList<>(); int n=nums.length; if(nums == null|| n<3) re...

2020-02-06 19:09:30 101

原创 插入排序和希尔排序

为了复习直接在网页码的 格式欠佳插入排序public static void sort(int a[]){int j;for(int p=1;p<a.length;p++){ int temp=a[p]; for(j=p;j>0&&temp<a[j-1];j--) a[j]=a[j-1]; a[j]=temp; }}...

2020-02-06 14:12:15 145

原创 快速排序和堆排序

快排public class QuickSort { public static int[] Sort(int []a,int left,int right){ if(left<right){ int mid=position(a,left,right);//获取中间值 a=Sort(a,left,mid-1);//中间值...

2020-02-06 11:10:35 187

原创 二维数组中查找一个数字

今天沃尔又长高了 只能看剑指offer了 书上p40 java实现边界判断+条件判断public class offer { public static boolean findInPartiallySortedMatrix(int[][] data,int num){ if(data==null ||data.length==0 || data[0].length==...

2020-02-04 19:02:05 269

原创 String,String builder,StringBuffer面试题总结

问:下面程序的运行结果是什么?答:注释 1 打印为 false,主要考察 String 的 equals 方法,String 源码中 equals 方法有对参数进行 instance of String 判断语句,StringBuffer 的祖先为 CharSequence,所以不相等; 注释 2 打印为 false,因为 StringBuffer 没有重写 Object 的 equals 方...

2020-02-01 17:05:08 384

原创 MVC中controller部分的写法

Controller也就是控制器控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法在Spring MVC中,对于Controller的配置方式有很多种在这复习两种controller写法实现controller接口这是一种相对老套的办法//实现该接口的类获得控制...

2020-02-01 10:54:26 883

原创 idea数据库连接时区错误解决方法

显示时区问题,只要在url后加?serverTimezone=GMT%2B8即可jdbc:mysql://localhost:3306/ssmbuild?serverTimezone=GMT

2020-02-01 09:37:40 896

原创 SSM框架整合详细笔记!看完必会(代码idea实现)

ssm框架也就是spring mybatis springMVC整合三者作用:SpringMVC : mvc,也就是model.view,controller,在SpringMVC中,做到了近乎全部的封装,只需要程序员编写chontroller部分即可,SpringMVC的原理笔记一会整理Spring:强大的框架,基于IOC和AOP的结构J2EE系统的框架IOC 反转控制 是Spring的...

2020-01-31 17:32:49 1164

原创 何时使用requestScope

做ssm整合的时候 提交表单报错如下原因javax.el.MethodNotFoundException: 找不到方法:class java.lang.String.getBookID()既然我写了getBookID()方法,肯定是查询的时候出了问题后排查到是之前没有加requestScope.get方法,直接用 的(‘list’),所以报错,而后了解了一下以下来自百度百科requ...

2020-01-31 15:44:03 1534

原创 解决idea maven通过dependencies导入jar包速度过慢的方法

1.将你的maven目录下的conf的settings.xml打开,找到并复制替换以下内容<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name>...

2020-01-28 09:04:11 987

原创 JavaSE多态

多态性在java中的体现:1.方法重写和重载2.对象的多态性–可以直接应用在抽象类和接口上java引用变量有两种类型,编译时类型和运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际复制给该变量的对象决定两者不一致就会出现多态判断是否为多态存在“is-a”规则,他表明子类的每个对象也是父类的对象例如Employee e=new Employee();Employee...

2020-01-27 17:25:49 235

原创 KMP模式匹配算法

在知道这个之前…原来我一直在暴力for循环。。。。真是不知者无畏啊暴力匹配就不说了 大家都知道怎么回事 无非是挨个比,如果不匹配了,就像后挪一位再比,以此类推,效率极低。在最坏情况下的时间复杂度相当高引用于大话数据结构...

2020-01-27 10:14:08 627

原创 Spring三种注入方式

方式一 构造器注入创建一个类public class UserT { private String name; public UserT(String name) { this.name = name; } public void setName(String name) { this.name = name; }...

2020-01-26 11:03:00 301

原创 Spring AOP原理和用法

AOP也就是面向切面编程,首先AOP不等于Spring aop,前者是编程所要实现的目标,后者仅仅是AOP的实现方式之一,作为一种动态注入的实现方式,还有一些别的例如AspectJ等,就不赘述了一. Spring aop使用场景分析如图是常规思维下一个登陆流程的实现,在登陆的流程中,每一步都不能发生任何错误(这里指的当然不是空指针这种RuntimeException),而是指的数据传输出现了...

2020-01-25 16:13:39 2720 2

原创 Java动态代理底层机制浅析

在学习spring之初,总会见到动态代理,换句话说不理解动态代理就没法理解spring,诚然可以使用一些“万能模板”,但不理解底层原理和咸鱼有什么区别呢?什么是动态代理所谓动态代理,显而易见相对于静态代理静态代理的好处可以使得我们的真实角色更加纯粹 . 不再去关注一些公共的事情 .公共的业务由代理来完成 . 实现了业务的分工 ,公共业务发生扩展时变得更加集中和方便 .缺点 :类多了...

2020-01-23 17:30:39 280

原创 MyBatis框架核心之注解使用resultMap及多表查询

前几天还觉得注解麻烦,突然恍然大悟,觉得注解相较于传统的mapper.xml+接口,xml使用接口映射相对较麻烦,所以我们可以使用注解来简化开发。本文简单介绍一下@Results、@Result、@One和@Many的用法,该注解主要是代替resultMap标签和其子标签,还有一些通过注解crud的用法 学艺不精 还望多多指教一、resultMap简介MyBatis是基于“数据库结构不可控”...

2020-01-22 09:27:21 3439 9

原创 JDBC步骤详解

因为学习理解Mvc 用到了大量数据库的连接 特此来巩固一下jdbc安装之类的就不说了 自行百度 从具体使用jdbc开始复习第一步 加载Class.forName("com.mysql.jdbc.Driver");//利用反射在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String cla...

2020-01-16 16:36:46 187

原创 JSP原理和用法

通过Servlet进行整个网站的开发是可以的。 不过在Servlet中输出html代码,特别是稍微复杂一点的html代码,就会给人一种很酸爽的感觉。如果能够直接使用Html代码,然后在html中写java代码,就好了~JSP … 就可以干这个事情。工作原理当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet...

2020-01-13 09:37:56 205

原创 Servlet原理和用法

Servlet工作原理客户端发送请求至服务器服务器将请求信息发送至servletServlet生成相应内容并传给服务器,响应内容动态生成,取决于客户端的请求服务器将响应返回给客户端生命周期Servlet的生命周期通过java.servlet.Servlet接口中的init()、service()、和destroy()方法表示。Servlet的生命周期有四个阶段:加载并实例化、初始化...

2020-01-13 00:35:55 156

原创 深入了解Cookie的形成过程

先复习一下HTTP协议,即超文本传输协议的特点1.支持clint/server模式2.简单快速:客户向服务器请求服务的时候,只需要传送请求方法和路径。常用的又GET HEAD POST,每种方法规定了客户与服务器练习的类型不同。由于HTTP协议简单,所以程序规模小,通讯速度快。3.灵活:可以有Context-Type支持任意输出类型的对象4.无连接:指Web浏览器与Web服务器之间不需要...

2020-01-12 12:07:35 4722

原创 starting tomcat v9.0 server at localhost has encountered a problem的解决方法

经常会碰到这样的问题,下面是解决方法首先打开双击server.xml会显示两处的port都是"80",将上面的改为8008即可解决。

2020-01-11 15:48:21 6575

原创 JDK8新增getOrDefault使用方法

上源码Method ReturnsThe getOrDefault() method returns the value to which the specified key is mapped, or defaultValue if this map contains no mapping for the key.直译一下就是当HashMap集合中有这个key时,如果存在则return ...

2020-01-07 09:47:33 771

原创 js的onfocus与onblur的用法

在我们登录或者注册的页面时常会注意到一个细节,文本框中的 请输入用户名 在点击框的时候便会消失转换成闪烁光标,而鼠标挪开之后又会出现请输入用户名的字样,知道输入内容。例:点击时输入后实现代码:<input type=“text” value=“请输入用户名”οnfοcus=“if(value==‘请输入用户名’){value=’ '}” οnblur=“if (val...

2020-01-06 16:36:54 2473

原创 TCP和UDP关于握手的区别实例

众所周知,TCP 是面向连接的,UDP 是面向无连接的。TCP需要先行建立数据连接,也就是n次握手,当然一般三次握手可以确保99%的连接确定性,在传输完成后,需要释放连接,效率低。生活中举例:类似于打电话UDP不需要建立连接,开销小速度快,但连接不可靠,丢失量大于TCP,生活中类似于直播平台。以下是代码证实的TCP和UDP关于握手的区别:TCP:如果先执行了client,程序会在短暂的...

2020-01-02 20:36:52 2486

原创 leetcode判断是否有效括号

题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。解答我个人想到最简单易懂的方法class Solution {public boolean isValid(String s) {Stack stack = new S...

2020-01-02 00:32:51 220

空空如也

空空如也

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

TA关注的人

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