`
jiangwenfeng762
  • 浏览: 286136 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
tcp状态: LISTEN:侦听来自远方的TCP端口的连接请求SYN-SENT:再发送连接请求后等待匹配的连接请求SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认ESTABLISHED:代表一个打开的连接FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认FIN-WAIT-2:从远程TCP等待连接中断请求CLOSE-WAIT:等待从本地用户发来的连接中断请求CLOSING:等待远程TCP对连接中断的确认LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求 ...
关于java的CountDownLatch。Latch:门闩之意。 CountDownLatch经常用来在多线程环境下,主线程协调多个子线程的步调。生活中最相似的场景就是运动员比赛,裁判员(主线程)控制比赛的开始和结束,运动员(子线程)完成自己的比赛,当且仅当所有运动员都完成比赛时,裁判员就可以下令整场比赛结束。下面转载网友针对上述场景的模拟代码,以便更好地理解CountDownLatch的使用。 import java.util.concurrent.CountDownLatch;2  import java.util.concurrent.Executor;3  impo ...
java.util.HashMap类提供了静态的hash方法和indexFor方法: /*** Applies a supplemental hash function to a given hashCode, which* defends against poor quality hash functions. This is critical* because HashMap uses power-of-two length hash tables, that* otherwise encounter collisions for hashCodes that do not dif ...
刚接触db,索引貌似还是一个高级货,那么多新名词,新概念让人很晕,其实索引真的很简单。我们知道IO操作是数据库访问很耗时的操作,应该尽量避免。索引就是在内存中(当然如果索引太大,也可能在硬盘固定的,连续的存储块中)建立一个真实数据的映射,通过索引,我们确定要找的数据范围,然后再通过尽量少的IO到硬盘上把目标数据抓回来。以下是可以作为索引的数据结构,其中mysql采用的是B+树。 顺序文件:几种简单的文件组织,其产生方式是将数据文件按某个查找键排序,并在该文 件上建立索引。 • 稠密索引:这种索引为数据文件的每个记录设一个键-指针对。这些键-指针对按它们的键 值顺序存放。 • 稀疏索引:这些索 ...
在jvm规范中,每个类型都有自己的常量池。常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型、字段、方法的符号引用。之所以是符号引用而不是像c语言那样,编译时直接指定其他类型,是因为java是动态绑定的,只有在运行时根据某些规则才能确定具体依赖的类型实例,这正是java实现多态的基础。   为了对常量池有更具体的认识,下面引用几个例子: 1,常量池中对象和堆中的对象
#是否以后台进程运行,默认为no,如果需要以后台进程运行则改为yes daemonize no     #如果以后台进程运行的话,就需要指定pid,你可以在此自定义redis.pid文件的位置。 pidfile /var/run/redis.pid     #接受连接的端口号,如果端口是0则redis将不会监听TCP socket连接 port 6379   # If you want you can bind a single interface, if the bind option is not # specified all the interfaces wi ...
jedis是Redis官网推荐的java客户端实现。下面分析一下JedisPool的实现   JedisPool源码如下: package redis.clients.jedis; import org.apache.commons.pool.impl.GenericObjectPool.Config; import redis.clients.util.Pool; public class JedisPool extends Pool<Jedis> { public JedisPool(GenericObjectPool.Config poolCo ...
  先以两个问题开篇: 1.如果一个类有多个子类,那么new多个子类对象时,父类的对象是一个还是多个? 2.每个类型有一个常量池,还是每个对象都有自己的常量池? 你可以很快地正确回答吗?了解了java虚拟机方法区的原理,这两个问题就很清晰了。 java虚拟机把内存划分为方法区、堆和线程栈。简单说方法区用来存储类型的元数据信息,一个.class文件是类被java虚拟机使用之前的表现形式,一旦这个类要被使用,java虚拟机就会对其进行装载、连接(验证、准备、解析)和初始化。而装载(这里涉及到类加载器的相关理论)后的结果就是由.clas
理论部分 包的复用原则可以分为两大类 组件的内聚性原则:粒度 重用-发布等价原则(Reuse-Release Equialence Principle, REP)   重用的粒度就是发布的粒度。   你自己如果是某个可重用组件(包)的用户,这个组件(包 ...
括号使用规则 If表达式必须使用{},无论有多少语句 错误实例:  public class Foo {    public void bar() {      int x = 0;      if (foo) x++;//if(foo){x++;}
今天总结一下常用的JVM的启动参数。 参数类别 参数项
  用以判断JVM是否存在内存问题呢?如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。      Jstat是JDK自带的一个轻量级小工具。全称 ...
为什么需要锁? 因为数据库要解决并发控制问题。在同一时刻,可能会有多个客户端对Table1.rown进行操作,比如有的在读取该行数据,其他的尝试去删除它。为了保证数据的一致性,数据库就要对这种并发操作进行控制,因此就有了锁的概念。 锁的分类 从对数据操作的类型(读\写)分 读锁(共享锁):针对同一块数据,多个读操作可以同时进行而不会互相影响。 写锁(排他锁):当当前写操作没有完成前,它会阻断其他写锁和读锁。 从锁定的数据范围分 表锁 行锁 为了尽可能提高数据库的并发度,每次锁定的数据范围越小越好,理论上每次只锁定当前操作的数据的方案会得到最大的并发度,但是管理锁是很耗资 ...
AUTOCOMMIT Mysql默认自动提交,可以通过如下命令查看和修改: mysql> SHOW VARIABLES LIKE 'AUTOCOMMIT';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+-------+1 row in set (0.00 sec)mysql> SET AUTOCOMMIT = 1; 隐式锁显式锁 InnoDB在开启事务时,获取隐式锁,在事务提交或者回滚时释放锁,In ...
最关心的是MyIsam和InnoDB两种。 MyIsam: 存储文件: 数据文件:.MYD 索引文件:.MYI 特点: 表锁,不支持事务,支持全文索引,支持对TEXT和BLOB类型建立索引 数据恢复貌似很慢,因为没有log   InnoDB: 特点: 行锁,支持事务,数据恢复块,因为有binlog 曾经有人问:数据量很大,不需要事务支持,使用哪种存储引擎好?
Global site tag (gtag.js) - Google Analytics