自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Netty之ByteBuf

一、功能原理ByteBuf是一个byte存放的缓冲区。ByteBuf通过两个位置的指针来协助缓冲区的读写操作,读操作使用readIndex,写操作使用writeIndex。 +-------------------+------------------+------------------+| discardable bytes | readable bytes | writable by...

2018-05-31 17:01:28 2103

转载 java内部类

说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:  一.内部类基础  二.深入理解内部类  三.内部类的使用场景和好处  四.常见的与内部类相关的笔试面试题  若有不正之处,请多谅解并欢迎批评指正。  请尊重作者劳动成果,转载请标明原...

2018-05-29 10:19:49 87

转载 Socket学习之解决TCP半包粘包问题

问题产生TCP是一个数据流协议,所以TCP发送的数据包大小是不可控制的,这时候就会出现粘包和半包的现象,下面这张图是我从网上找的,描述很形象1. 情况1,Data1和Data2都分开发送到了Server端,没有产生粘包和拆包的情况。2. 情况2,Data1和Data2数据粘在了一起,打成了一个大的包发送到Server端,这个情况就是粘包。3. 情况3,Data2被分离成Data2_1和Data2_...

2018-05-29 09:46:43 616

转载 TCP如何解决乱序和丢包问题,描述一下三次握手

  TCP如何解决乱序和丢包问题,描述一下三次握手TCP数据包的头格式中有两个概念,Sequence Number是数据包的序号,用来解决网络包乱序(reordering)问题。Acknowledgement Number就是ACK——用于确认收到,用来解决不丢包的问题。 位码即tcp标志位,有6种标示:SYN(synchronous建立联机)  ACK(acknowledgement 确认) P...

2018-05-29 09:36:04 3533

转载 HashMap实现原理

1.    HashMap概述:   HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2.    HashMap的数据结构:   在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不...

2018-05-21 14:44:44 115

原创 通过websocket实现聊天室的Demo

时下websocket非常的火热,它是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端。下面通过一个小小的demo来看看它的应用:1.创建一个类:WebSocketTest .java package me.gacl.websocket;  import java.io.IOException;  import java.u...

2018-05-21 10:59:38 750

转载 Redis 解决键冲突

Redis 解决键冲突当有两个或以上数量的键被分配到了哈希表数组的同一个索引上面时, 我们称这些键发生了冲突(collision)。Redis 的哈希表使用链地址法(separate chaining)来解决键冲突: 每个哈希表节点都有一个 next 指针, 多个哈希表节点可以用 next 指针构成一个单向链表, 被分配到同一个索引上的多个节点可以用这个单向链表连接起来, 这就解决了键冲突的问题。...

2018-05-21 10:32:21 8221 1

转载 solr全文检索实现原理

solr全文检索实现原理  Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML/Json格式的返回结果。采用Java5开发,基于Lucene。  Lucene是apache软件基金会4 jakarta项目组的一个子项目,是...

2018-05-19 14:58:11 187

原创 Redis集群运行

前提:已配置好Redis的集群;java代码:@Test public void testJedisCluster() throws Exception { //创建一个JedisCluster对象 //创建集群的节点 HashSet<HostAndPort> nodes = new HashSet<>(); nodes.add(new HostAndPort("1...

2018-05-19 11:29:16 154

转载 redis集群原理

        redis是单线程,但是一般的作为缓存使用的话,redis足够了,因为它的读写速度太快了。      官方的一个简单测试:      测试完成了50个并发执行100000个请求。      设置和获取的值是一个256字节字符串。      结果:读的速度是110000次/s,写的速度是81000次/s     在这么快的读写速度下,对于一般程序来说足够用了,但是对于访问量特别大的网...

2018-05-19 10:31:30 2108

转载 Java引用详解(强引用、软引用、弱引用、虚引用)

强引用(Strong Reference)强引用是指在程序代码中普遍存在的,类似“Object obj=new Object()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。[java] view plain copy print?public class StrongReferenceTest {      private static class BiggerObjec...

2018-05-19 09:37:06 97

转载 GC详解及Minor GC和Full GC触发条件总结

摘要:GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。**GC机制**要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发...

2018-05-19 09:27:35 200

转载 多线程基础

前言多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。正文线程与进程1 线程:进程中负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境2 进程:执行中的程序一个进程至少包含一个线程3 单线程:程序中只存在一个线程,实际上主方法就是一个主线程4 多线程:在...

2018-05-16 16:12:44 73

转载 Socket通信原理简单理解

2017年02月04日 10:07:01阅读数:4444         在接触Java之前,本人曾对即时通讯工具非常感兴趣。现在是网络时代,网络间通讯已经成为了每个人生活的一部分,有鉴于此,程序员在这方面做出一定的了解是极为必要的。因为工作的关系,一直接触不到网络编程这一块,因此自己通过业余时间来研究学习,也得出一些自己的认识,希望可以帮助到和我一...

2018-05-16 15:56:02 1819 1

原创 创建索引

CREATE INDEXCREATE INDEX可对表增加普通索引或UNIQUE索引。12CREATE INDEX index_name ON table_name (column_list)CREATE UNIQUE INDEX index_name ON table_name (column_list)table_name、index_name和column_list具有与ALTER TABL...

2018-05-15 21:47:22 144

转载 java线程锁

在多线程中,每个线程的执行顺序,是无法预测不可控制的,那么在对数据进行读写的时候便存在由于读写顺序多乱而造成数据混乱错误的可能性。那么如何控制,每个线程对于数据的读写顺序呢?这里就涉及到线程锁。什么是线程锁?使用锁的目的是什么?先看一个例子。 private void testSimple(){ SimpleRunner runner = new SimpleRunner();...

2018-05-15 16:17:23 192

转载 多线程(二)使用多线程的准备知识

一、为什么要使用多线程?        【使计算机所有资源在执行任务的时候能够全部利用上,以提升计算机资源利用率的方式来提升系统执行效率】  CPU的单核运行速度由于硬件技术问题已经遇到瓶颈,而概念性的“光脑”貌似离我们还很遥远,现在的计算机性能提升方向是向多核发展。多核同时工作,协同完成任务。大家熟知的神威·太湖之光超级计算机总共使用了40960颗处理器,总计拥有10649600颗核心、1.31...

2018-05-15 16:06:32 245

转载 高并发和多线程

 “高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程  多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。   高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系...

2018-05-15 16:03:37 151

转载 java多线程理解

引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确...

2018-05-15 11:29:00 117

转载 java中为何要用多线程?

我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。 线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。 当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。 同步这个词是从英文...

2018-05-15 11:25:25 456

原创 public String toString() {}方法

新建一个JavaBean:public class AdminUser { private Integer uid; private String username; private String password;//geter()加setter()方法.......@Override public String toString() { return " username=" + usern...

2018-05-14 16:53:30 16720

转载 通过PrepareStatement对数据库中的数据进行增删改查

1 插入数据public boolean ChaRu3(User user){boolean flag=true; Connection conn=null; PreparedStatement ps=null; //创建PreparedStatement 对象 String sql= "insert into user (name,pwd) val...

2018-05-12 14:28:35 1753

转载 struts2的action从request获取参数值的几种方式

使用jquery框架的ajax能够方便的向后台传递参数,以$.post为例,参数有2种方式字符串和键值对:$.post(url, "name=aty&age=25")和$.post(url, {"name":"aty","age":25})。显然,使用json的方式比使用字符串拼接要方便。对于后台的action来说,这2种方式是等价的,而且jquery也提供了param、serialize...

2018-05-12 09:52:31 1371

原创 java_socket

客户端从网页上接收数据,再通过输出流写入数据,服务端接收(用BufferedReader类的字符流接收)服务端:  BufferedReader bufferedReader=new BufferedReader(inputStreamReader);//加入缓冲区             String temp=null;             String info="";      ...

2018-05-11 20:25:45 73

原创 通过java获取propertity文件内容

public void analyze(){InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipdata.properties");     Properties p = new Properties();     try {      p.load(inputStream)...

2018-05-09 21:25:38 496

原创 struts应用:关于从jsp页面中输入action后,运行报“404”错误

举例来说:jsp页面中:action="${pageContext.request.contextPath }/doLogin.action" struts.xml中:<action name="doLogin" class="cn.wan.login.adminuser.action.AdminUserAction" />AdminUserAction.java对于单一的业务逻辑请求...

2018-05-09 19:15:13 1478

原创 hashmap的存储原理

直接上代码:public V put(K key, V value) {     //如果key为null,存储位置为table[0]或table[0]的冲突链上       if (key == null)           return putForNullKey(value);       int hash = hash(key);//对key的hashcode进一步计算,确保散列均匀in...

2018-05-06 18:54:58 122

空空如也

空空如也

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

TA关注的人

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