- 博客(108)
- 收藏
- 关注
原创 TCP-关闭机制
TCP关闭的整个过程:主动一方写完数据,关闭写入通道,发起fin-1报文,请求关闭写入通道,主动一方进入fin-1状态,被动一方接到fin-1报文,进入close-wait状态,被动一方从读通道读完数据,发送ack报文到主动关闭方,被动一方进入到ack状态主动关闭一方进入到fin-2状态被动一方写完数据,发送fin-2报文到主动方,被动一方进入las
2017-10-28 20:04:08 368
原创 LinkedList remove(Integer index) remove(E e) remove(int i)
LinkedList remove(Integer index) remove(E e) remove(int i)Integer为对象类型不是int类型。所以会走 remove(E e) 这个多态方法所以对于Integer: remove((int)index) 转型就可以了。
2017-04-04 09:18:47 775
原创 Lock Synchronized
Lock提供了一个锁方法:lock(),去获得代码执行权限,又通过unLock()去释放代码执行权限,而Synchronized只有一个代码块:Synchronized {},不够灵活。Lock还提供了一个同步非阻塞方法判断是否获得了代码执行权限:tryLock(),这个方法会返回布尔值来标志是否获得了锁;同时提供了一个带有锁超时参数的重载方法,tryLock(Long time,TImeUn
2017-02-11 14:12:57 300
原创 批量文件编码转换(GBK/UTF-8/UNICODE etc)
批量文件编码转换,JAVA源码:代码中的GBK为文件编码格式,Unicode为目标文件存储格式,根据个人实际情况切换编码。warn:因为文件是一次性读取全部字符,所以单个文件大小不要太大,否则会内存溢出的。做好文件备份。package A;import java.io.File;import java.io.FileInputStream;import java.io.File
2016-09-30 11:20:44 6724
原创 在UTF-8中,一个汉字为什么需要三个字节?
UNICODE是万能编码,包含了所有符号的编码,它规定了所有符号在计算机底层的二进制的顺序。有关Unicode为什么会出现就不叙述了,Unicode是针对所有计算机的使用者定义一套统一的编码规范,这样计算机使用者就避免了编码转换的问题。Unicode定义了所有符号的二进制形式,也就是符号如何在计算机内部存储的,而且每个符号规定都必须使用两个字节来表示,也就是用16位二进制去代表一个符号,这样就导致
2016-07-27 01:12:00 9199 3
原创 JAVA 抽象路径
抽象路径名:JAVA为了方便对不同命名规则的路径进行统一的处理,以JAVA的抽象路径名代表不同系统的路径名。以java.io.File的构造方法源码为例: public File(String pathname) {//pathname可以是windows系统的路径名称,也可以是Linux系统下的路径名称。if (pathname == null) { throw new Nu
2016-04-02 10:58:44 3997 1
原创 Hibernate String index out of 0
项目环境:mysql 5.1.73 Hibernate:3.5.0 Final报错:Hibernate Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of 0解决方法:查看表是否有char(1)这样类型的字段,如果有的话,看看这个字段
2016-03-29 17:14:50 791
原创 java socket 使用 多线程下载请求
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket
2016-03-15 16:40:51 1000
原创 同步和异步
同步:执行一次事件中,事件中的每一个步骤开始执行的充分必要事件是这个步骤的上一个步骤已经执行完毕。当然第一步的执行的充分条件那就是这个事件被调用了。这是我理解的同步的意思。异步:执行一次事件中,事件的每个步骤的执行是彼此不相关的,各司其职,每个步骤不需要阻塞自己,等待上一步骤的执行完毕。在上一步骤执行完需要调用下一步骤的时候,就回调这个步骤。
2015-04-11 13:35:28 462
原创 plsql连接局域网 Oracle 问题
winddows7 64bitplsql版本:设置“tnsnames.ora”环境变量:TNS_ADMIN=tnsnames.ora的路径(事先下载好这个东东:”instantclient_11_2“,在这个东西根路径下有“tnsnames.ora”文件);设置编码环境变量:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;设置p
2015-04-09 10:26:58 1119
原创 java
在java中:对象存储在堆中;引用对象的引用类型放在栈中。 堆是用来存储数据的,在java中,就是以对象的方式来表达数据在计算机中存储的数据结构和数据之间关系的数据结构; 栈是用来处理逻辑的,逻辑是用来处理数据的。也就是栈里表达了程序是如何执行的,是如何处理数据的。以面向对象的方式来阐释计算机的数据结构,的确不错,很好,很强大。
2015-04-02 11:33:17 500
原创 三层架构(转)
这里是指应用业务的三层架构数据层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。表示层:主要表示WEB方式,也可以表示成WINF
2015-03-30 11:02:13 442
原创 python中的赋值
a=2b=3这个时候,a==b和a is b 打印的都是True。因为a和b指向了同一个对象a=[]b=[]而这个时候,a==b打印的是True,a和b的对象相同,但是a is b 打印的是False,因为没有指向同一个对象a=[0]b=aa[0]=1print b[0]打印的为1,a==b和a is b 打印的都是True。究
2015-03-27 23:09:40 902
原创 python import;from
看到网上很多是这样解释import和from:说这两个类似于C语言中的include;我认为,这种说法是不负责任的说法,容易把初学者带入到误区。C语言是编译型语言,所有的东西在编译期间已经决定好了,C语言是静态的;而python语言是解释型语言,是动态的。C语言中的include是引入了很多方法或者变量,这个是没错的。但是,,,,,,,,我想请各位特别注意下:python是完全面向
2015-03-27 21:51:14 361
原创 Python 程序;模块;语句;表达式;对象
Python由模块构成;模块包含语句;语句包含表达式;表达式创建并处理对象;表达式嵌套在语句中,Python语法本质上是由语句和表达式组成;python的对象必须初始化;所有的复合语句末尾一定要以冒号:“:” 结尾;增加缩进代表着嵌套代码的开始,减少缩进代表着嵌套代码的结束。与C语言的不同:分号,python一行即为结束,除非在一行代
2015-03-27 09:04:30 634
原创 Python运行源代码
第一步:编写Python源代码第二步:dos下python 文件名这是在windows下运行的,python首先将源代码编译成字节码文件,然后将字节码文件用python解释器去执行。对于源代码中的每一行代码,也就是以分号结束的一句代码,分别将这一句代码分解为单一步骤,来将这些源语句翻译成一组字节码指令。
2015-03-26 12:50:35 1027
原创 动态语言和静态语言的区别
一下纯属个人理解,如有错误,欢迎批评指教所谓的静态语言指的是代码经过编写后直接编译,生成机器代码,然后CPU会根据机器代码的逻辑顺序,顺序执行,不会动态改变。例如:C语言,过程语言。代码写好,经过编译生成CPU直接可以运行的机器码。所谓的动态语言指的是编写后的代码可以在执行的时候动态改变。所写非所得。举个例子:数据类型可以动态改变,这里我把自己编写的类也作为了数据类型的一种。而且就连加载的
2015-03-26 09:12:32 545
原创 关于数据结构重要性的解释
许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。系统实现的困难程度:这句话指的是用代码来实现功能的困难程度;系统构造的质量:鲁棒性;是否容易升级维护; 个人对于这句话是这么看待的。我们的软件是跑在计算机上的,而计算机内存存储的是我们的数据集合和数据之间逻辑关系的集合。这两种集合。所以我们的程序代码
2015-03-24 20:07:33 751
原创 数据结构的意义(转载自百度百科)
一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许
2015-03-24 19:53:41 666
原创 UML 问题域
问题域(Problem domain)”指提问的范围、问题之间的内在的关系和逻辑可能性空间。 软件工程:在软件工程中,问题域是指被开发系统的应用领域,即在客观世界中由该系统处理的业务范围。 概念模型是对真实世界中问题域内的事物的描述,不是对软件设计的描述。概念的描述包括:记号、内涵、外延,其中记号和内涵(视图)是其最具实际意义的。
2015-03-24 19:23:21 3525
原创 java 事务
第一个原则:事务不要嵌套使用(jdbc事务;JTA事务;)第二个原则:一个事务最好放在一个方法里面执行,也就是说,一个事务不要通过多个方法去实现。关于jdbc中的事务:jdbc默认autoCommit是true的,也就是一个sql语句就是一个事务,所以如果想要把多个sql语句组合成一个事务,要设置autoCommit为false,最后再同一个设置成true去统一执行。
2015-03-22 18:36:00 281
原创 操作系统:分段与分页的区别(转载)
页和分段系统有许多相似之处,但在概念上两者完全不同,主要表现在:1、页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。 2、页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分
2015-03-22 08:06:56 3763
原创 java jdk 动态代理
目标:为实现了统一接口的子类的一个共同方法,在这个共同方法之前,或者之后,为这所有的子类加入共同的处理逻辑实现途径:代理模式;jdk反射机制。具体步骤:第一步:写出一个代理类,该类实现了InnovationHandler接口,并实现了invoke(Object proxy,Method method, Object[] args)方法。jdk设计此接口的目的:为需要织入
2015-03-21 14:45:39 649
原创 拓扑排序(转载自百度百科)
定义 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为
2015-03-21 10:34:19 414
原创 图-有向无环图
有向无环图如图所示为一个非有向无环图,因为A点出发向B经C可回到A,形成一个环。将从C到A的边方向改为从A到C,则变成有向无环图。在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。如右图,不为
2015-03-21 09:53:25 459
原创 数据库系统数据产生不一致的根本原因
数据不一致性是指数据的矛盾性、不相容性。产生数据不一致的原因主要有以下三种:一是由于数据冗余造成的;二是由于并发控制不当造成的;三是由于各种故障、错误造成的。根本原因:数据冗余
2015-03-17 14:29:49 12094
原创 对于理解spring非常重要的一段话
25、Class.forName 的作用?为什么要用?答: 按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加载过,则返回代表该字节码的 Class 实例对象,否则,按类加载器的委托机制去搜索和加载该类,如果所有的类加载器都无法加载到该类,则抛出 ClassNotFoundException。加载完这个 Class 字节码后,接着就可以使用 Class
2015-03-17 12:30:49 479
原创 数据库三范式
第一范式: 所谓第一范式(1NF)是指在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。说明:在任何一个关系数据库
2015-03-17 12:14:32 312
原创 mysql : group by 和 where
where 是对数据集进行筛选;group by 是对结果集进行聚集;也就是说 group by 是 在 where 筛选之后 进行聚集。所以 group by 必须 跟在where 的 后面
2015-03-17 10:27:22 1061
原创 forward和recondirect的区别
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以 session,request 参数都可以获取。
2015-03-16 17:22:08 466
原创 四、sendRedirect()和forward()方法的区别 -----HttpServletResponse接口的sendRedirect()方法和RequestDispatcher接口的forw
四、sendRedirect()和forward()方法的区别-----HttpServletResponse接口的sendRedirect()方法和RequestDispatcher接口的forward()方法都可以利用另外的资源(Servlet、JSP页面或HTML文件)来为客户端服务,但两种方法有本质的区别 1、sendRedirect()方法---->
2015-03-16 17:13:46 693
原创 java .equals() hashcode
equals如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果,注:这里说的equals(Object) 方法是指Object类中未被子类重写过的equals方法。如果两个hashCode()返回的结果相等,则两个对象的equals方法不一定相等。
2015-03-16 16:25:49 371
原创 java servlet
servlet的整个过程。客户端请求该 servlet;加载 servlet 类到内存;实例化、初始化该 servlet;init() 初始化参数;service()(doGet() 或者 doPost());destroy()。详解:一个客户端的请求到达 ServerServer 创建一个请求对象
2015-03-16 11:03:37 328
原创 java 垃圾回收
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 对于 GC 来说,当程序员创建对象时,GC 就开始监控这个对象的地址、大小以及使用情况。通常,GC 采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当 GC 确定一些对象为"不可达"时,GC 就有责任回收这些内存空间
2015-03-15 16:36:08 308
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人