- 博客(63)
- 资源 (4)
- 收藏
- 关注
原创 史上最硬核仿网易云音乐安卓客户端
Github地址 https://github.com/zion223/NeteaseCloudMusic
2020-05-03 10:20:32
1172
4
原创 记一次使用Aircrack"破解"实验室无线网密码
环境准备: 一台kali Linux的虚拟机,一台win10的物理机1) 打开 网卡的Monitor(监控)模式 > lsusb在命令行运行 lsusb 查看当前系统的USB设备,因为我这里使用的是无线网卡,很明显第一个设备就是插入的网卡,网卡为Ralink类型,芯片为MT7601U,已经自动安装好驱动程序。 airmon-ng 运行 airmon-...
2018-04-27 14:07:58
1667
原创 Zookeeper Watcher核心机制·安全认证(ACL)·实际应用
zookeeper有watch事件,是一次性触发的,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher。同样,其watcher是监听数据发送了某些变化,那就一定会有相应的事件类型和状态类型事件类型:EventType.NodeCreated 节点创建EventType.NodeDeleted节点删除EventType.NodeData
2017-11-07 21:21:09
972
转载 Mysql索引优化
索引问题索引是数据库优化中最常见也 最重要的手段之一,通过索引通常可以帮助用户解决大多数的SQL性能问题。(Mysql的优化很大一部分都集中在索引的优化,因为现在是信息社会,数据量都不少,所以做索引少不了的,很多学员朋友在面试或者在公司里面其实面面临的一个重要的问题往往是突出的问题是查询过慢或者查询过久导致服务器的cpu消耗过高,那么像这种问题咱们最直接最常用的手段是什么呢? 索引优化,所...
2017-11-05 11:50:49
361
1
转载 Mysql性能调优
目标了解什么是优化掌握优化查询的方法掌握优化数据库结构的方法掌握优化MySQL服务器的方法什么是优化?合理安排资源、调整系统参数使MySQL运行更快、更节省资源。优化是多方面的,包括查询优化、更新优化、服务器优化等很多方面。没有特定方式特定的方法,总是要具体场景,具体分析,但是我们要掌握基本的优化手段。原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。数据库
2017-11-05 11:47:53
644
转载 Java性能优化
1、java的性能优化1、减少gc的压力,优先级比较低的线程,它是一个守护线程回收堆内存。2、尽量的避免new操作2、String,StringBuffer,StringBuilder String 不能变长度jvm中的方法区永久区--存的类信息、方法、常量、静态变量常量池:String pool,int poolStringBuffer 是线程安全StringBuilder
2017-11-05 11:45:02
332
原创 第十一课 粘包分包分析,如何避免socket攻击
1、消息如何在管道中流转当前的一个handler如何往下面的一个handler传递一个对象一个管道中会有多个handlerhandler往下传递对象的方法是sendUpstream(event) 服务端bootstrap.setPipelineFactory(new ChannelPipelineFactory() { @Override public
2017-11-04 22:07:12
1051
原创 第十课 自定义数据包协议
客户端发送到服务端两条数据 give me a coffee give me a tea服务端收到的数据: - give me a coffeegive me a tea 粘包现象 - give me - a coffeegive me a tea 分包现象粘包和分包出现的原因是:没有一个稳定数据结构解决方法(1) 分割符give me a coffee|give me
2017-11-02 13:15:26
1924
转载 Tomcat7性能优化
目的通过优化tomcat提高网站的并发能力。当我们今天我们将这个优化讲完之前 优化完成后看能达到什么层次。 服务器资源服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。 硬件我们不说了 这个方面是钱越多越好是吧。优化配置配置tomcat管理员账户在conf/ tomcat-users.xml下添加用户: 启动tomc
2017-11-02 09:41:56
1232
原创 第九课 自定义序列化协议
public class Test1 { public static void main(String[] args) throws IOException { int id= 101; int age= 21; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputSt
2017-11-01 21:07:55
300
原创 第八课 protocol buffer实战
1.protocol buff是一种协议,是谷歌推出的一种序列化协议2.Java序列化协议也是一种协议3.两者的目的是,将对象序列化成字节数组,或者说是二进制数据java序列化示例public class JAVA2Bytes { public static void main(String[] args) throws Exception { byte[] bytes
2017-10-31 15:26:36
307
原创 第七课 Netty学习之心跳
idleStateHandler用来检测会话状态心跳其实就是一个普通的请求,特点数据简单,业务也简单心跳对于服务端来说,定时清除闲置会话 channelclose(netty3)心跳对客户端来说,用来检测会话是否断开,是否重连! 用来检测网络延时!心跳检测简单实例public class Server { public static void main(String[] args) {
2017-10-31 13:54:21
288
原创 第三课 Netty客户端
public class Client { public static void main(String[] args) { ClientBootstrap clientBootstrap = new ClientBootstrap(); ExecutorService boss = Executors.newCachedThreadPool();
2017-10-29 16:04:00
516
原创 第二课 Netty服务端
netty应用的领域1分布式进程通信 例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x2、游戏服务器开发 最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 netty5.x代码示例public class Server { public static void main(S
2017-10-29 15:50:37
332
原创 第一课 NIO
传统IO的特点阻塞点 server.accept(); inputStream.read(bytes);单线程情况下只能有一个客户端用线程池可以有多个客户端连接,但是非常消耗性能无法作为长连接服务器可以做短连接(旧版本Tomcat)NIO的关键词ServerSocketChannel ServerSocketSocketChannel SocketSelectorSelect
2017-10-29 14:00:00
360
原创 Dubbo服务只订阅和只注册
Q:为方便开发测试,经常会在线下公用一个所有服务可用的注册中心,这时,如果一个正在开发中的服务提供者注册,可能会影响到消费者不能正常运行A:可以让服务提供者开发方,只订阅服务,而不注册正在开发的服务,通过直连测试正在开发的服务禁用注册配置<dubbo:registry address="localhost:9090" register="false">Q: 如果有两个镜像环境,连个注册中心,有一个服
2017-10-27 10:09:23
1740
原创 Dubbo直连提供者
在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候就可能需要进行点对点直连,点对点直连的方式下,将以服务接口为单位,忽略注册中心的提供者列表(1) 如果是线上需求需要点对点,可在中配置url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下<dubbo:reference interface="com.edu.xxx.XxxService" url="dubbo://lo
2017-10-27 09:28:28
332
原创 Dubbo服务启动依赖检查
启动时检查Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到null引用,如果check=false,总是会返回引用,当服务恢复时,能自动连上。 可以通过check=”fal
2017-10-26 20:54:59
352
原创 Dubbo服务接口的设计原则
根据接口类型划分简单的数据查询接口:action facade dao带业务逻辑的数据查询接口:action facade biz dao简单的数据写入接口:action facade dao带业务逻辑的数据写入接口:action facade biz dao同步接口异步接口设计原则接口粒度服务接口尽可能大粒度,每个服务方法应代表一个功能,而不是某功能的一个步骤,否则将地面临分布式事务
2017-10-26 20:36:22
1213
原创 Dubbo服务集群容错配置
可配置标签 <dubbo:reference/> <dubbo:service/>属性:cluster类型: String是否必须:可选默认值:failover作用:调优可选属性名称:failover/failback/failsafe/failfast/forking1.Failover (默认值) 失败自动切换,当出现失败时,重试其他服务器,通常用于读操作,可通过retries
2017-10-26 17:15:04
986
原创 Failure executing javac, but could not parse the error
在执行maven install命令时碰到过这个错误,百度了好多答案,并不是jdk环境变量的问题 而是java文件的开头的中文注释,去掉即可去除报错
2017-10-24 10:57:19
1724
原创 Dubbo服务的运行方式(使用maven构建dubbo可执行的jar包)
1.使用Servlet容器运行(Tomcat Jetty等)—–不建议缺点:增加复杂性(端口,管理) 浪费资源(内存)2.自建Main方法来执行(Spring容器) —不建议(仅限本地调试)缺点:Dubbo本身的高级特性没用上 启动类可能会有缺陷public class DubboProvider { private static final Log log = LogFactory.g
2017-10-24 09:24:31
342
原创 Java设计模式
设计模式开闭原则:对修改该关闭,对扩展开发代码重用低耦合(模块与模块之间,类与类之间依赖程度要降低)高内聚(模块或者类内部依赖程度要高)易扩充易维护1 适配器模式类的适配器模式对象的适配器模式接口的适配器模式2 责任链模式横向扩展 链条上有多个对象,每个对象持有下一个对象的引用,这样形成一条链,请求在这条链上传递 在隐瞒用户的情况下对系统进行动态调整3 策略模式策略模式
2017-10-18 20:34:11
230
原创 Mongodb入门
mongodbnosql型数据库 not only sql mongodb的文档类似于一个json对象{ user:{ name: "zhang", age:"20" }}主要特点可以设置索引,更快排序支持丰富的查询表达式与关系型数据库对比 RDBMS Mongodb 解释说明 Database Database
2017-10-16 20:44:54
202
原创 Java核心技术之反射
1 Java的类加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。 2 Class实例化的方式用new语句创
2017-10-12 15:15:38
264
原创 关于HashMap那些事
1 什么是hash它是将一个任意长度的二进制值(key)通过一个映射关系转换成一个固定长度的二进制值(value) 关键字:任意长度 映射关系(hash算法) 固定长度固定长度的二进制值相当于一个任意长度的二进制值的一个摘要 2 hash表特点:存储效率高,取数据的时间复杂度为1 o(1) hash 通过一个key,通过一个哈希函数,找到数组中与这个key唯一映射的value
2017-10-12 11:39:42
310
1
原创 Vue与axios整合时,访问Vue实例
新建一个Vue实例,在created方法中使用axios发起异步请求 var app = new Vue({ el:"#app", data :{ message: 'Hello Vue!', goods:[] }, created(){ axios.get('/goods/home
2017-07-03 13:05:52
2551
原创 Java AIO编程入门
服务器端:public class Server { //线程池 private ExecutorService executorService; //线程组 private AsynchronousChannelGroup threadGroup; //服务器通道 public AsynchronousServerSocketChannel assc
2017-06-17 20:37:51
1137
原创 Java NIO网络编程
javaNIO和传统BIO的区别:Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 Java NIO的缓冲导向方法略有不同。数据读取到一个它稍后处理的缓冲区,需要时可在缓
2017-06-15 14:06:29
444
原创 Java SocketIO网络编程
服务器端import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class Server { final static int PROT = 8700; public static void main(String[] args) {
2017-06-14 17:23:22
2311
转载 Java多线程之Executor框架
Executors创建线程池的方法:public static ExecutorService newFixedThreadPool(int nThreads) 创建固定数目线程的线程池。public static ExecutorService newCachedThreadPool() 创建一个可缓存的线程池,调用execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用
2017-06-12 17:04:32
232
原创 Java多线程之同步类容器与并发容器
同步容器类同步容器类包括Vector和HashTable,而且是早期JDK的一部分,这些同步的封装器类是由Collections.synchronizedxxx等工厂方法创建的。例如 Map<String,String> map =Collections.synchronizedMap(new HashMap<String,String >());HashMap本来不是线程安全的,但是上面的map
2017-06-09 14:03:32
1261
转载 Java实现一个HashMap
package Map;import java.util.ArrayList;import java.util.List;public class HashMap<K,V> implements Map<K,V>{ private static float DEFAULT_LOAD_FACTOR=0.75f; //负载因子 private static int defaultLengt
2017-06-08 19:48:09
508
原创 Java多线程之模拟一个阻塞队列
import java.util.LinkedList;import java.util.concurrent.atomic.AtomicInteger;public class MyQueue { private final LinkedList<Object> list = new LinkedList<>(); //需要一个计数器,统计加入List集合元素的个数
2017-06-08 17:52:29
955
原创 Java多线程之深入理解synchronize关键字
synchronize锁重入:关键字synchronize拥有锁重入的功能,也就是在使用synchronize时,当一个线程的得到了一个对象的锁后,再次请求此对象是可以再次得到该对象的锁。 当一个线程请求一个由其他线程持有的锁时,发出请求的线程就会被阻塞,然而,由于内置锁是可重入的,因此如果某个线程试图获得一个已经由她自己持有的锁,那么这个请求就会成功,“重入” 意味着获取锁的 操作的粒度是“线程
2017-06-07 16:14:42
11360
转载 如何应对并发-关于数据索引
从整体架构来说分很多部分,比如常见的,存储层的i/o优化,网络层负载均衡,通讯层的连接池等等,不过我这里不讲这些。不讲这些的原因第一呢,是这些我基本都不太会;第二呢,是在实践过程中发现,特别是创业公司,中小企业,一般最容易出问题,也是最难处理的,往往是数据库方面的问题。 非技术人员往往会认为,负载高了,请求多了,加服务器加硬件不就完了? 如果是只是应用程序处理,常见的负载均衡方案很成熟,加加硬件
2017-06-06 16:07:58
1085
原创 Java多线程基础之对象锁的同步与异步
同步:synchronized 同步的概念就是共享,如果不是共享的资源,就没有必要进行同步。 异步:asynchronized 异步的概念就是独立,相互之间不受到任何制约。同步的目的就是为了线程安全,对于线程安全来说,需要满足两个特性:(原子性)同步可见性
2017-06-06 15:42:29
1373
原创 Retrofit与RxJava实践
首先添加Retrofit依赖compile 'com.squareup.retrofit2:retrofit:2.1.0'Retrofit通过接口来管理HTTP API,那么首先我们先定义一个API的接口:public interface ZhihuApi { @GET("/api/4/news/latest")//GET方法这里可以换成
2017-01-20 17:11:18
437
翻译 在阅读了Nodejs文档后我学到的19件事
我认为我已经非常了解Node了,我已经使用它写网站长达三年之久。但是我从来没有真正的静下心来阅读它的官方文档。就像长期读者所知道的,我喜欢在旅行中写出接口,原型,方法,函数,数据类型还有一些和网站开发相关的,
2016-11-09 16:39:46
763
gradle-5.1.1-all.zip
2020-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人