_CoderZxk
码龄11年
关注
提问 私信
  • 博客:21,375
    动态:111
    21,486
    总访问量
  • 53
    原创
  • 322,720
    排名
  • 5
    粉丝
  • 0
    铁粉

个人简介:Talk is cheap.Show me your code

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:江苏省
  • 加入CSDN时间: 2014-08-10
博客简介:

xiaoko81

查看详细资料
个人成就
  • 获得8次点赞
  • 内容获得3次评论
  • 获得17次收藏
创作历程
  • 1篇
    2021年
  • 52篇
    2020年
成就勋章
TA的专栏
  • 框架
    2篇
  • 设计模式
    2篇
  • 消息队列
    1篇
  • JVM
    3篇
  • java-源码
    3篇
  • 算法
    15篇
  • Java基础
    10篇
  • zookeeper
    1篇
  • 操作系统
    8篇
  • springboot
    1篇
  • 前端&JS
    5篇
  • netty
    2篇
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

JPA学习笔记

一、什么是JPA? JPA是Hibernate出的一款数据库操作框架,对比Mybatis有着轻巧,简单,易用的特性,但因MySQL复杂查询方式十分复杂而饱受诟病,这也成为许多人认为JPA不好用的原因。 二、JPA配置方法 spring: datasource: url: jdbc:mysql://${数据库URL}/${数据库名}?characterEncoding=utf-8&serverTimezone=GMT%2B8 username: …… password: …
原创
发布博客 2021.10.07 ·
256 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

单例模式

饿汉式 public class HungrySingleton { private static final HungrySingleton hungrySingleton = new HungrySingleton(); public HungrySingleton() { } public static HungrySingleton getInstance() { return hungrySingleton; } public
原创
发布博客 2020.12.25 ·
382 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

spring bean中的scope

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.spring
原创
发布博客 2020.09.17 ·
180 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RocketMQ学习笔记(1)-RocketMQ火速搭建一个小型集群教程

http://rocketmq.apache.org/docs/quick-start/ 在这个网站上我们可以了解从RocketMQ的入门,下载,安装,编译步骤。 默认已经安装并且编译好了之后,我们可以看一下如下文件夹 step1 cd rocketmq step2 cd distribution/ step3 cd target step4 cd apache-rocketmq step5 cd bin 执行这一步我们就可以看到许多脚本文件了,但是标题是火速搭建一个小型集群,这时候Rocket.
原创
发布博客 2020.09.13 ·
329 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

JVM学习笔记-画一张图阐明MinorGC实现过程

-XX:NewSize=5242880 -XX:MaxNewSize=5242880 -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=10485760 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log 新建的对
原创
发布博客 2020.08.31 ·
226 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

JVM学习笔记-垃圾回收器

这篇文章,我会介绍两个回收器 ParNew和CMS ParNew回收器 ParNew这个回收期主要用于MinorGC回收 它回收的速度很快,是一个多线程回收器,比Serial回收器(单线程)效率要快得多。 使用 -XX:+UseParNewGC 可以开启ParNew垃圾处理器 使用 -XX:ParallelGCThreads 可以调节垃圾回收器的线程数量 CMS回收器 CMS主要用于老年代回收器,它主要的回收算法是标记清理算法。 标记清理算法是将与GC关联的存活变量打上标记,其余的被回收。 它的缺点
原创
发布博客 2020.08.25 ·
908 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

JVM学习笔记-JVM内存分配问题

分代模型分为 老年代 年轻代 永久代 回收过程 当开始执行一个方法的时候,创建一个栈帧将其压入栈中,如图所示,当执行完成之后弹出栈帧,此时该栈帧与堆内存无关,所以回收线程可对堆内存实例化的资源进行回收 改造代码 此时我们将其改造一下 老年代与年轻代 将这个变量变成全局变量,此时,就会引出两个概念[年轻代]和[老年代] 年轻代就是创建很快就被回收的对象 老年代就是很久不被回收的对象 比如说案例一中不断新建不断回收-,就是一直在年轻代。 但是案例二创建了静态全局变量,这个对象一开始处于年轻代,不久之
原创
发布博客 2020.08.20 ·
342 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java源码阅读-String,Long

String值的不变性 /** The value is used for character storage. */ private final char value[]; String s="zxk"; s="rust"; 这个s变量的值发生了改变吗? 答案是并没有,我们可以翻出源码来看一下 /** The value is used for character storage. */ private final char value[]; 这个value数组的定义是一个常量
原创
发布博客 2020.08.15 ·
126 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 226. 翻转二叉树 及 二叉树方面一些题目的练习

翻转一棵二叉树。 示例: 输入: 4 / 2 7 / \ / 1 3 6 9 输出: 4 / 7 2 / \ / 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 这道题是经典的二叉树反转问题,Homebrew的作者当时也没做出来,被谷歌拒之门外。 其实,这道题用递归去做相当简单 看图 .
原创
发布博客 2020.08.11 ·
160 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 279. 完全平方数

完全平方数这题我就用BFS去解了,因为我感觉最容易理解的就是BFS(?)至少现在这么认为。。。 广度优先遍历就是利用队列,如图所示,12入队,12出队,现在我要消耗完13,那么只有i<n^2的范围内,也就是说剩下的数字就是11,8,3,接着,这三个数字入队,以此类推衍生除了10,7,2,7,4,2这些,再将其入队,又可得出子子子子节点,何时结束呢,一直找到那个消耗完的时候就结束了 未被优化的算法 public int numSquares(int n) { Queue<In
原创
发布博客 2020.08.10 ·
128 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 20.有效的括号[对栈和队列的应用]

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出: false 示例 4: 输入: “([)]” 输出: false 示例 5: 输入: “{[]}” 输出: true 栈解法 对于这道题,我一开始用.
原创
发布博客 2020.08.09 ·
158 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LeetCode 206 反转链表

反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 从微观角度来看,先解决第一轮链表反转,第一轮当然是1->2节点的反转,先初始化一个pre节点,这个节点为null,接着先把cur的下个节点保存起来,因为我们后期要维护这个节点,就设置成tmp吧。我们迎来了最重要的一个环节,就是红色箭头那个操作,cur的.
原创
发布博客 2020.08.08 ·
142 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
leetcode 219 存在重复元素 II
发布动态 2020.08.07

leetcode 219 存在重复元素 II

给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。 示例 1: 输入: nums = [1,2,3,1], k = 3 输出: true 示例 2: 输入: nums = [1,0,1,1], k = 1 输出: true 示例 3: 输入: nums = [1,2,3,1,2,3], k = 2 输出: false O(N^2)解法 暴力破解 首先最容易想到的解法就是用O(n^2)复.
原创
发布博客 2020.08.07 ·
283 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Java并发编程-线程究竟有多少种实现方式?

我们熟悉的继承extends和实现runnable接口实现线程,但是这就算两种吗?首先,先写出来这最基础的两种。 Runnable接口实现线程方法 public class ThreadBaseDemo1 implements Runnable { public static void main(String[] args) { new Thread(new ThreadBaseDemo1()).start(); } @Override public voi
原创
发布博客 2020.07.30 ·
139 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java并发编程-死锁

死锁就像两个人鞠躬,A说B起来我就起来,B说A起来我就起来,结果就陷入了僵局,谁也起不来。 经典的哲学家问题,五个人有六只筷子,一起拿身边的一只筷子。这样的话谁也拿不到两只筷子吃饭,但是假如有顺序的进行,那就可以破坏掉死锁。 package com.company.DeadLock; public class DL implements Runnable { static Object o1 = new Object(); static Object o2 = new Object()
原创
发布博客 2020.07.29 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java并发编程-CAS

CAS英文全名(CompareAndSwap)比较与交换,它是具有原子性的,而且也是乐观锁的实现原理 实现它的主要是有个比较值。在传入新的参数的时候,会将旧参数与系统内的旧参数进行对比后交换。 public void cas(int expectedOldValue,int newVal){ if(expectedOldValue == systemOldValue){ systemOldValue=newVal; } } 大致就是这么个意思,所以说,通过旧值控制更新,防止多线程错误的进行更新赋
原创
发布博客 2020.07.29 ·
125 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
Java并发编程-Java内存模型
发布动态 2020.08.04

Java并发编程-Java内存模型

首先,先理清Java内存模型和Java内存结构的区别 Java内存结构是指JVM的内存结构,Java的运行是由Java虚拟机支撑的(Java Virtual Machine) Java内存结构 堆区 堆是存储类实例和数组的,通常是内存中最大的那一块,实例就是实例出来的对象,那么数组在堆区也很好理解,在Java中,数组也可以当作一个实例化的对象。 虚拟机栈 虚拟机栈保存局部变量和部分处理结果,并在方法调用和返回中起作用。 方法区 存储每个类的结构,例如运行时的常量池,字段和方法数据,构造
原创
发布博客 2020.07.27 ·
153 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

Java并发编程-线程间的协作

想象个场景,比如有10w的并发量,突如其来的流量处理肯定让线程处理不过来最终导致崩溃。 在这种情况下,就有信号量这种东西了。Semaphore Semaphore的构造函数是规定动用多少个线程进行处理 先看一段不对线程用信号量处理的代码 public class HttpRequestDemo implements Runnable { public static void main(String[] args) { ExecutorService executorService
原创
发布博客 2020.07.26 ·
111 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多