随笔分类 -  Java基础

摘要:1. Netty中的缓冲 在Netty中并没有使用Java自带的ByteBuffer,而是自己实现提供了一个缓存区来用于标识一个字节序列,并帮助用户操作原始字节或者自定义的POJO。 Java NIO的ByteBuffer问题 长度固定,不能动态扩展和收缩 只有一个标识位置的指针,读写时要手动调用相 阅读全文
posted @ 2016-12-24 19:12 TomSnail 阅读(1491) 评论(0) 推荐(0) 编辑
摘要:1. Channel Channel是Netty的核心概念之一,它是Netty网络通信的主体,由它负责同对端进行网络通信、注册和数据操作等功能。 1.1 工作原理 如上图所示: 一旦用户端连接成功,将新建一个channel同该用户端进行绑定 channel从EventLoopGroup获得一个Eve 阅读全文
posted @ 2016-12-17 18:43 TomSnail 阅读(16573) 评论(6) 推荐(7) 编辑
摘要:1 Proactor和Reactor Proactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。 I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图: 1.1 select,poll,epol 阅读全文
posted @ 2016-12-10 21:06 TomSnail 阅读(21398) 评论(2) 推荐(4) 编辑
摘要:问题原因 跨域是指从一个域名的网页去请求另一个域名的资源。浏览器出于安全的考虑,不允许不同源的请求: 解决方法 CORS CORS是一个W3C标准,全称是"跨域资源共享"(Cross origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 阅读全文
posted @ 2016-12-09 16:06 TomSnail 阅读(2181) 评论(0) 推荐(0) 编辑
摘要:1 HTTP协议协商 1.1 NPN NPN:Next Protocol Negotiation,是由Google公司开发的用于SPDY进行协议协商扩展。 协商过程: 服务端在收到客户端的client hello后,把自己支持的协议通过Server Hello 发送给客户端 客户端拿到清单后,选择一 阅读全文
posted @ 2016-12-09 15:45 TomSnail 阅读(500) 评论(0) 推荐(0) 编辑
摘要:1 Java IO 1.1 Java IO 1.1.1 IO IO,即输入(Input)输出(Output)的简写,是描述计算机软硬件对二进制数据的传输、读写等操作的统称。 按照软硬件可分为: 磁盘IO 内存IO 网络IO 按照处理的方式可分为: 同步IO 非阻塞IO 异步IO 按照数据类型可分为: 阅读全文
posted @ 2016-12-03 21:09 TomSnail 阅读(2084) 评论(0) 推荐(0) 编辑
摘要:1.线程状态 如上图,当我们新建一个线程,并start后,其实不一定会马上执行,因为只有操作系统调度了我们的线程,才能真正进行执行,而操作系统也随时可以运行其他线程,这时线程又回到可运行状态。这个过程是操作系统控制的,不是我们能控制的。我们能控制的是将线程变为blocked,并从blocked变为... 阅读全文
posted @ 2015-05-03 15:01 TomSnail 阅读(746) 评论(0) 推荐(0) 编辑
摘要:1.两个数据模型第一个是基本类型数组,第二个使用的是Float对象数组public class SummaryModel{ private float[] summaryData; public float[] getSummaryData() { return su... 阅读全文
posted @ 2015-04-23 15:33 TomSnail 阅读(3856) 评论(0) 推荐(0) 编辑
摘要:/** * 测试thread的wait notify notifyAll sleep Interrupted * @author tomsnail * @date 2015年4月20日 下午3:20:44 */public class Test1 { /** * 对象锁... 阅读全文
posted @ 2015-04-20 15:24 TomSnail 阅读(309) 评论(0) 推荐(0) 编辑
摘要:1.synchronized关键字/** * 同步关键字 * @author tomsnail * @date 2015年4月18日 下午12:12:39 */public class SyncThreadTest { private static final byte[] lock = ne... 阅读全文
posted @ 2015-04-18 13:24 TomSnail 阅读(175) 评论(0) 推荐(0) 编辑
摘要:最近在做项目时,用户不想使用平均值来判断当前数据状态,想用其他的方式来分析数据的变化状态,在查找了一些资料后,想使用灰色预测来进行数据的预测。下面的内容是从网上综合下来的,java代码也做了一点改动,以做记录和学习。1.什么是灰色预测 灰色预测是一种对含有不确定因素的系统进行预测的方法。灰色预测通... 阅读全文
posted @ 2015-04-09 14:58 TomSnail 阅读(6704) 评论(3) 推荐(0) 编辑
摘要:1.封装import java.util.Date;public class Human { protected String name; protected BirthDay birthDay; protected String sex; public St... 阅读全文
posted @ 2015-04-05 12:17 TomSnail 阅读(442) 评论(0) 推荐(0) 编辑
摘要:1.继承Thread public class TestThread extends Thread{ public void run(){ System.out.println(Thread.currentThread().getName()); } pub... 阅读全文
posted @ 2015-04-03 16:32 TomSnail 阅读(412) 评论(0) 推荐(0) 编辑
摘要:1.先上原理图2.说明两个mysql采用主主同步的方式进行部署。在安装mysql的服务器上安装客户端(目前是这么做,以后想在zookeeper扩展集成),客户端实时监控mysql应用的可用性,可用时想zookeepercreateNode,当网络不可用或者mysql应用不可用时,建立的znode消失... 阅读全文
posted @ 2015-04-03 10:20 TomSnail 阅读(12720) 评论(2) 推荐(1) 编辑
摘要:1.接口public interface Hello { public void sayHello();}2.实例类public class Hello2 { public void sayHello() { System.out.println("hello world2... 阅读全文
posted @ 2015-04-02 12:30 TomSnail 阅读(246) 评论(0) 推荐(0) 编辑
摘要:采用zookeeper的命令服务,采用不同的目录结构存储不同模块不同服务的rmi的url,使用key来对应不同的服务。同时采用zookeeper解决了单点问题。当有两个相同的服务注册时,因为采用的是临时有序znode,也会注册成功,客户端在调用时,发现有多个不同url,则会随机调取一个使用。当一个服... 阅读全文
posted @ 2015-04-01 19:21 TomSnail 阅读(4184) 评论(0) 推荐(0) 编辑
摘要:看一下百度的解释: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息 以及动态调用对象的方法的功能称为java语言的反射机制。 先看一下一个例子: 这是最简单的反射使用方法,通过反射来调用... 阅读全文
posted @ 2015-04-01 11:49 TomSnail 阅读(588) 评论(0) 推荐(1) 编辑
摘要:package com.tomsnail.data.tree;/** * AVL二叉平衡树 * @author tomsnail * @date 2015年3月30日 下午4:35:50 */public class AVLTree { /** * 根节点 * @aut... 阅读全文
posted @ 2015-03-31 18:26 TomSnail 阅读(1346) 评论(0) 推荐(0) 编辑
摘要:Tomcat加载JSP主要有以下几个类:JspServletJspServletWrapperJspCompilationContextJspRuntimeContextJsperLoaderCompiler这几个类都在jasper.jar包中1.Tomat将http请求通过servlet转给Jsp... 阅读全文
posted @ 2015-03-31 11:37 TomSnail 阅读(3131) 评论(0) 推荐(1) 编辑
摘要:我想大多数Java初学者都会遇到的问题,那就是怎么配置环境,执行java -jar xxx.jar 都会报NoClassDefFindError,我在最开始学习的时候,也遇到了这些问题。1.PATH path是路径的意思,我们直接在控制台运行一个程序时候,系统都会在指定的path下去找有没有这个程... 阅读全文
posted @ 2015-03-31 07:50 TomSnail 阅读(889) 评论(0) 推荐(1) 编辑