- 博客(32)
- 收藏
- 关注
原创 Java并行程序基础
进程(Process)与线程(Thread) 程序:是指令和数据的集合,其本身没有任何运行的含义,是一个静态的概念。 进程:是程序执行的一次过程,它是一个动态的概念,是系统资源分配的单位 线程:通常一个进程可以包含多个线程,一个进程至少包含一个线程。线程是CPU调度和执行的单位。 真正多线程是指有多个CPU,即多核。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间段,CPU也只能执行一个代码,由于切换的速度很快,就让我们有了同时执行的错觉。 Java中main()方法称..
2021-07-26 21:01:11
326
2
原创 搭建PXC集群
PXC集群介绍 Pecona XtraDB Cluster 是业界主流的MySQL集群方案 PXC集群的数据同步具有强一致性的特点 PXC集群只支持InnoDB引擎 PXC集群保存的是高价值的数据 数据库运行在Docker MySQL放在容器中运行会不会有性能损耗? Docker是轻量级的虚拟机,Docker既没有虚拟硬件,又没有安装独立的操作系统,只不过是给Docker线程绑定上了CPU跟内存,然后Docker内部再去划分每个容器占有多少硬件资源,Docker直接使..
2021-07-20 22:03:26
931
2
原创 权限acl详解,acl的构成-scheme与id
ACL(access control lists)权限控制 针对节点可以设置相关读写设置等操作权限,目的是为了保障数据安全性 权限permissions可以指定不同权限范围以及角色 ACL命令行 getAcl:获取某个节点的acl权限信息 setAcl:设置某个节点的acl权限信息 addauth:输入认证授权信息,注册时输入明文密码(登录),但是在zk的系统里,密码是以加密的形式存在的 ACL的构成 zk的acl通过[scheme:id:p..
2021-07-18 11:32:02
866
1
原创 ZooKeeper的基本特性-以及常用命令行 create set delete
zk常用命令行 ls 查看当前路径的节点 ls -s 查看当前节点的状态信息(老版为ls2 进行查询) stat 显示当前节点状态 相当于ls -s命令,但是ls -s还结合了ls显示当前节点的功能 get 读取当前节点数据 当前节点为空 znode的状态属性 Znode 的状态属性 cZxid 创建节点时的事务ID ctime 创建节点时的时间 mZxid ..
2021-07-18 11:31:10
502
原创 zk特性-理解watch机制
watch机制一 针对每个节点的操作,都会有一个监督者 -> watcher 当监控的某个对象(znode)发生了变化,则触发watcher事件 zk中的watcher是一次性的,触发后立即销毁 watch机制二 父结点,子节点 增删改都能触发其watch 针对不同类型的操作,触发的watch事件也不同 (子)节点创建事件 (子)结点删除事件 (子)节点数据变化事件 watcher命令行学习 通过 get path [watch] 设置watche(
2021-07-18 11:30:34
1308
1
原创 ZooKeeper基本数据模型
zk数据模型介绍 是一个树形结构,类似于前端开发中的tree.js组件。 zk的数据模型也可以理解为linux/unix的文件目录:/usr/local 每一个节点都称之为znode,它可以有子节点,也可以又数据。并以 key/value 形式存储数据。 每个节点分为临时节点和永久节点,临时节点在客户端断开后消失 永久节点就是一个永久化的过程。比如说存了一些数据,这些数据只有在人为的情况下才能进行删除,如果客户端session丢失之后,或者筛选超时,那么它的数据还是会存在的。..
2021-04-29 22:52:51
264
原创 zookeeper概述和分布式系统简介
什么是zookeeper 中间件,提供协调服务。 作用于分布式系统,发挥其优势,可以为大数据服务 支持java,提供java和c语言的客户端api 什么是分布式系统 很多台计算机组成一个整体,一个整体一致对外并且处理同一个请求。 内部的媚态计算机都可以相互通信(rest/rpc) 客户端到服务端的一次请求到响应结束历经很多台计算机 关于分布式系统,就是一个系统,进行功能的拆分,最后整合成一个庞大的系统。这个庞大的系统对于用户来说不是透明的,对于自己来说,..
2021-04-29 22:51:55
275
3
原创 设计模式--SOLID原则
Single Responsiblity Principle(SRP)--单一职责原则 这个原则的英文描述是这样的:A class or module should have a single reponsibility。 如果我们把它翻译成中文,那就是:一个类或者模块只负责完成一个职责(或者功能)。一个类只负责完成一个职责或者功能。不要设计大而全的类,要设计粒度小、功能单一的...
2020-04-14 23:32:57
245
原创 WPF 在电脑锁屏之后界面出现卡死现象 解决方案
在app.xaml.cs添加以下代码即可:protected override void OnStartup(StartupEventArgs e){ RenderOptions.ProcessRenderMode = System.Windows.Interop.RenderMode.SoftwareOnly;}这是一个很简单粗暴的解决方案,希望对你有帮助。相关链接:...
2019-06-21 00:38:21
3114
1
原创 设计模式:7大原则
1. 单一职责原则(Single Responsibility Principle, SRP):对于一个类而言,应该只有一个引起它变化的原因。2. 开闭原则(Open-Closed Principle,OCP): 一个软件实体应当对扩展开放,对修改关闭。既软件实体应尽量不去修改它原有的代码的情况下进行修改。抽象化是关键。3. 里氏代换原则(Liskov Substitution Princ...
2018-11-16 22:54:41
259
原创 Java Socket
Socket编程:1. 网络基础知识 如果两台计算机要通过网络进行通信,那么需要满足一些必然的条件:1. 两台主机它们需要有唯一的标识。用来表示它们所处的身份,他们所在的位置,这就是IP地址。2. 它们需要有共同的语言,否则就会出现言语不通,无法交流,这就是我们的协议。3. 每台主机都需要有相应的端口号,一台主机上可以运行多个应用程序,那如何辨别不同应用程序的通信,我们需要使用端口号来进行区...
2018-05-17 23:49:47
367
原创 Java多线程之内存可见性
1.可见性 1.1 什么是可见性? 一个线程对共享变量值的修改,能够及时的被其他线程看到。 1.2 什么是共享变量? 如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。 什么是线程的工作内存呢? 这个其实是Java内存模型抽象出来的一个概念 简单了解一下Java内存模型: Java内存模型(...
2018-04-05 11:14:26
293
原创 Java-线程基础
1. Java中线程的两种创建方式 1.1 继承Thread类 当调用start()方法后,该线程就进入到线程队列当中,这时候在等待CPU的服务,一旦获取到了CPU的时间片,这个时候就会转到run()方法执行相对应的代码。当run()方法的逻辑执行完了,那么线程就会自然而然的消完了。 1.2 实现Runnable接口 ...
2018-04-02 12:09:36
234
原创 Redis超详细入门
1. NoSQL的概叙 1.1 什么是NoSQL? 1. NoSQL = Not Only SQL 2. 非关系型的数据库 1.2 为什么需要NoSQL? 1. High Performance - 高并发读写 2. Huge Storage - 海量...
2018-03-29 23:01:26
586
原创 SpringMVC工作流程
SpringMVC的工作流程如下:1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(二者组成HandlerExecutionChain),并将其一并返回给DispatcherServlet。 4、Dispatche...
2018-03-20 15:19:53
1185
原创 Tomcat版本对于Servlet版本的支持
http://blog.youkuaiyun.com/i_love_t/article/details/54288326由于在写一个SSM小项目的时候,使用的是Tomcat 7版本。在JSP页面不能使用EL表达式获取值。后来在上面的文章中查找得到:Apache Tomcat 7.x的Apache Tomcat 7.x的建立在Tomcat中6.0.x的改进和实现的Servlet 3.0,JSP 2.2,EL ...
2018-03-09 00:38:52
3674
原创 最小生成元-java
如果x加上x的各个位数字之和得到y,就说x是y的生成元;给出n,(1<=n<=100000),求最小生成元。无解输出0.例如,n=216,121,2005时的解分别为198,0,1979。198 + 1 + 9 + 8 = 216;1979 + 1 + 9 + 7 + 9 = 2005;我的思路如下:1.从0找到n所有的数字2.将这些数字转成String存入ArrayList<S...
2018-03-08 16:46:17
647
原创 Java实现:排序算法--时间复杂度为O(n² )
为什么要学习时间复杂度为O(n² )?1.基础2.编码简单,易于实现,是一些简单情景的首选3.在一些特殊情况下,简单的排序算法更有效4.简单的排序算法思想衍生出复杂的排序算法1.选择排序选择排序,就是每一次都筛选出最小(或最大)的数字,然后放在每一次排序的第几个位置。比如第一次排序,找出最小(或最大)的元素,放在第一个位置,第二次排序,找出最小(或最大)的元素,放在第二个位置.....顺序从小到大...
2018-03-07 00:04:43
945
原创 Java实现--给定2D平面上的n个点,找出位于同一直线上的最大点数。
//这是原文。Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.//默认给出的构造函数/** * Definition for a point. * class Point { * int x; * int y; * ...
2018-03-03 00:11:55
1921
原创 题目:给定一棵二叉树,找到它的最小深度
最小深度是沿着从根节点到最近叶节点的最短路径的节点数量。//树节点public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }1.先判断根节点有无节点,没有返回0;2.在判断根节点的左右有无节点,没有返回1;3.如果以上...
2018-02-28 21:50:49
708
原创 Java实现-快速排序(QuickSort)
一. 快速排序的基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。如图所示:从当前的数组中选取一个元素,将这个元素作为基点,一般选取第一个元素:“4”作为基点。之后再想办法把“4”挪到排好序的时候应该所处的位置,如图所示:“4”出现在这个位...
2018-02-26 23:33:30
338
原创 使用CSS3制作3D动态效果
CSS3有两个主要的动画效果:1.transition:从一个属性值,平滑的过渡到另一个属性值2.animation 通过关键帧的技术,在网页上产生更加复杂的动画效果。本章节只讲transition的部分:一.浏览器的支持-webkit-transition : 适用于Chrome和Safari-moz-trans
2017-12-25 22:17:49
2088
原创 数据结构之--堆(Java代码)
堆,是一种树,由它实现的优先级队列的插入和删除的时间复杂度都是O(logN)。尽管这样删除的时间变慢了一些,但是插入的时间变快得多了。当速度非常重要,且有很多插入操作时,可以选择 [堆] 来实现优先级队列。----------------------------------------------------------------这里的“堆”是一种特殊的二叉树,不要和Java和C++等编程语言里...
2017-12-10 23:24:38
367
原创 数据结构之--二叉树(Java代码)
为什么要使用树呢?在有序数组中,查找十分的快速,但是在插入数据的时候要移动数据,所以效率低下。在链表中,插入和删除数据十分的快速,但是查找的时候却只能从头开始,依次的访问链表中的每一个数据,知道找到该数据为止,所以效率也低下。总的来说:1.在有序数组插入数据慢2.在链表中查询慢而树这种数据结构,既能够像链表那样快速插入和删除,又能像有序数组那样快速查找。
2017-11-19 15:53:38
614
原创 数据结构之--链表(Java代码)
以数组作为存储结构,在无序的情况当中,查找关键字效率十分底下。而在有序的情况下,插入关键字也变得效率底下。而且不管在哪种情况下,数组的删除效率也是很低的。当一个数组创建之后,它的长度是固定的。而链表,可以解决上面的一些问题。一.链结点(Link)在链表中,每个数据项都被包含在“链结点”(Link)中。而链表则是将这些结点给“串联”起来。一个链结点 可能是某个类的对象,例如这个类叫做Link,因为一...
2017-11-18 15:47:28
528
原创 数据结构之--优先级队列(Java代码)
优先级队列是比栈和队列更加有用的数据结构。跟普通的队列一样,优先级队列也有队头和队尾,并且也是从一端进,一端出。但是不一样的地方是,优先级队列的值是有序的。如此一来,关键字最小的数据项(或最大的)总是队列的一端。在数据项很少或者不太关系速度的情况下,用数组实现优先队列还可以满足。如果数据项很多,或者速度很快,采用堆是更好的选择。这次代码以最大的关键字放在队头。packa
2017-11-14 22:28:35
495
原创 数据结构之--队列(Java代码)
队列是一种特殊的线性表,只允许在表的前端进行删除,在表的后端进行插入,表的前端称为(front)队头,表的后端称为(rear)队尾。 所以队列跟生活的场景很是相似,在电影院买电影票,人们排成一排,第一个人进入队尾最先到达队头后买票进入影院,后面排队的人按照排队的次序买到票后进入影院。 所以说:队列是一种先进先出的数据结构(FIFO)。当队列的插入数据时,R
2017-11-11 13:10:54
436
原创 数据结构之--栈(Java代码)
什么是栈呢?栈就是一种数据结构,只能从表的一端进行插入和删除。即,Push(入栈) 和 Pop (出栈),这是栈的两个最重要的动作。为了方便读取栈顶数据,通常还是会有一个Peek(查看)函数。栈的容量通常很小,是保存临时数据的。那如何用Java的数据结构来表示栈呢?-----用“数组”来进行栈的操作。public class Stack {
2017-11-08 22:26:10
558
原创 有一个整形数组int[]arr,将里面的值排序为最大值后输出
例如: int [] arr = {1,9,5,94,98} 的值为 1959498进行排序之后要变成 9989451,即[9,98,94,5,1]//交换 public static void swap(ArrayList arr , int i){ String temp = arr.get(i); arr.set(i,arr.
2017-10-14 23:08:36
1214
1
原创 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数。
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数。本人现菜鸟一枚。笔试的时候什么也想不出。只想出了一个想思路,但是没用代码写出来,QAQ...这是一位跟我一同参加笔试同学(Kevin 菜)告诉我的答案public static void main(String args []){ int count = 0; Arra
2017-10-14 00:26:51
2084
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人