- 博客(26)
- 资源 (3)
- 收藏
- 关注
转载 ServerSocket 用法详解
本篇文章观点和例子来自 《Java网络编程精解》, 作者为孙卫琴, 出版社为电子工业出版社。 在客户/服务器通信模式中, 服务器端需要创建监听端口的 ServerSocket, ServerSocket 负责接收客户连接请求. 本章首先介绍 ServerSocket 类的各个构造方法, 以及成员的用法, 接着介绍服务器如何用多线程来处理与多个客户的通信任务. 本章提供线程池的一种实现方法. 线程
2016-09-05 14:13:07
12920
原创 Run.getRuntime.exec
前几天刚解了个棘手的bug,就是Run.getRuntime.exec执行asu 命令总是返回1的问题。 但是把这段出错代码放到main函数执行就会返回0,放到我们的应用程序里面老死返回1 尝试过了百度查到的几乎所有的方法,未果。刚开始通过getErrorStream获取到的命令错误信息是username/password invalid。。 然后我们查找是不是传的参数有问题,尝试过将空格加上
2016-08-19 16:10:40
583
原创 java线程的状态
NEW 状态是指线程刚创建, 尚未启动RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等 BLOCKED 这个状态下, 是在多个线程有同步操作的场景, 比如正在等待另一个线程的synchronized 块的执行释放, 或者可重入的 synchronized块里别人调用wa
2016-06-07 09:48:41
353
转载 Thread的中断机制(interrupt)
中断线程线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序本身。线程会不时地检测这个中断标示位,以判断线程是否应该被中断(中断标示值是否为true)。它并不像stop方法那样会中断一个正在运行的线程。 判断线程是否被中断判断某个线程是否已被发送过中断请求,请使用Thre
2016-06-06 14:57:22
946
1
转载 ThreadPoolExecutor的corePoolSize和maximumPoolSize
按照JDK文档的描述,如果池中的实际线程数小于corePoolSize,无论是否其中有空闲的线程,都会给新的任务产生新的线程 如果池中的线程数>corePoolSize and
2016-05-27 10:46:52
1141
原创 java类加载顺序
看明白下面程序就知道了。public class Test6 { public static void main(String[] args){ new B(); new A.C(); } }class A{ private P p1 = new P("A--p1"); static P p3 = new P("A--p3"); public A(){ System.out.println("A()
2016-05-19 18:05:13
296
转载 Java enum的用法详解
用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl…. 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我
2016-05-19 14:41:10
227
转载 Java并发编程:Lock
一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况: 1)获取锁的线程执行完了该代码块,然
2016-03-30 10:21:58
361
原创 mysql执行脚本无法插入中文
mysql数据库编码格式为: 编辑数据库脚本时候,将保存格式设置为utf8。 我用UltraEdit 改的文件编码格式
2016-02-25 15:22:35
510
1
原创 spring aop
—最近学到sring aop,终于搞清楚aop:after和aop:after-returning的区别。前置通知(Before advice):在某连接点(JoinPoint)之前执行的通知,但这个通知不能阻止连接点前的执行。ApplicationContext中在里面使用元素进行声明。例如,TestAspect中的doBefore方法。 后置通知(After advice):当某连接点退出的时
2016-02-17 10:47:51
325
转载 ftok冲突
最近遇到一个问题,在用户b下创建共享内存失败,跟踪代码发现shmget的errno为17(要创建的这个共享内存已经存在了),可是在该用户下通过ipcs查看确实没有共享内存啊,后来发现,用户a下已经创建的共享内存与用户b要创建的共享内存冲突了,准确的说是key值冲突了,key值是通过ftok函数生成的。上网查询了一个,ftok是根据文件i节点和调用ftok时的id值产生的,而且还给出了例子加以说明,如
2016-01-05 14:43:03
516
原创 concurrenthashmap和hashmap
hashmap: 程序使用一个公共锁同步每一个方法,并严格得限制只能有一个线程同时访问容器。 concurrenthashmap: 使用一个更加细化的锁机制,叫分离锁。这个机制允许更深层次的共享访问,任意数量的读线程可以并发访问Map,读者写者也可以并发访问Map,有限数量的写者可以并发访问Map。结果是为并发访问带来了更高的吞吐量,同时几乎没有损失单个线程访问的性能。
2015-12-29 09:43:29
352
转载 Java中带包的类的编译与执行
以HelloWorld.java 为例( 假设该文件的位置是/home/HelloWorld.java): [java] view plaincopy package a.b; public class HelloWorld{ public static void main(String[] args){ System.out.println(“Hello World!”); }
2015-12-08 16:18:16
553
原创 java默认构造器constructor
如果类中不声明构造器(不论有参无参)的话,java会默认生成一个无参构造器,可以用getDeclaredConstructor()函数证明这个无参构造器是否存在。 如果类中已经声明了构造器的话,java就不会生成这个默认无参构造器了。 特别注意的是:默认构造器会自动获得与其所作的类一样的访问权限!!!import java.lang.reflect.*; class ComTest{} publ
2015-12-07 17:16:14
2098
1
原创 Externalizable和Serializable
1、Serializable序列化时不会调用默认的构造器,而Externalizable序列化时会调用默认构造器的!!! 2、Serializable:一个对象想要被序列化,那么它的类就要实现 此接口,这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。 Externalizable:他是Serializable接口的子类,有时我们不希望序列化那么
2015-12-03 09:36:16
11857
1
原创 GitBash 下如何解决javac/java编译运行乱码问题
将这句alias javac=’javac -J-Dfile.encoding=UTF-8’ 复制到文件C:\Program Files\Git\etc\bash.bashrc最后一行,保存 重启gitbash,问题即刻解决~
2015-12-01 14:59:44
2481
2
转载 Java 异常限制
覆盖一个方法时,只能产生已在方法的基础类版本中定义的异常。这是一个重要的限制,因为它意味着与基 础类协同工作的代码也会自动应用于从基础类衍生的任何对象(当然,这属于基本的OOP概念),其中包括 异常。 下面这个例子演示了强加在异常身上的限制类型(在编译期)://: StormyInning.java // Overridden methods may throw only the //
2015-11-24 10:30:41
769
原创 msgrcv: Argument list too long
C语言开发的长连接今天遇到了个棘手的问题,以前从来没出现过: msgrcv: Argument list too long 导致长连接出错 解决方法,ipcs 查看到消息队列中有好多未读的消息, 执行ipcrm -q 删除未读的所有消息成功了~
2015-11-19 17:24:53
4887
原创 深入理解java中的try-catch-finally
首先讲一下异常的层次结构,就看下图吧: 这么多异常,那我们写程序的时候都要try-catch 捕获么?答:非也那哪些异常需要我们try-catch捕获,哪些不需要try-catch捕获呢? 通常,Java的异常(包括Exception和Error)分为可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)。可查异常(编译器要求必须处置的异常):
2015-11-18 10:08:40
599
转载 有return的情况下try catch finally的执行顺序(最有说服力的总结)
结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally
2015-11-17 17:01:55
388
原创 Comparable和Comparator
Comparable: Comparable位于包 java.lang下 自定义的类要在加入list容器中后能够排序,可以实现Comparable接口 Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 String、Integer 自己就可以完成比较大小操作,已经实现了Comparable接口) 一个类实现了Comparable接口则表明这个类的对象之间是可
2015-11-17 14:14:35
317
转载 java中的集合和数组
数组Array和集合的区别: (1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型) (2)JAVA集合可以存储和操作数目不固定的一组数据。 (3)若程序时不知道究竟需要多少对象,需要在空间不足时自动扩增容量,则需要使用容器类库,array不适用。 联系:使用相应的toArray()和Arrays.asList()方法
2015-11-16 14:06:48
404
转载 java中length,length(),size()区别
1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法. 3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看!
2015-11-16 09:50:14
304
转载 Vector与ArrayList区别
在写java的时候,基本上都喜欢用arraylist,甚至我都不知道有个vector的存在。查了一下发现又是线程安全问题。。。咋个线程安全天天围着我转呢。。。多得阿里巴巴,让我开始认识java的所谓线程安全问题。 the following is from:http://blessed24.javaeye.com/blog/751336 1. Vector & ArrayList
2015-11-13 14:57:30
313
原创 HashMap和Hashtable
HashMap和Hashtable都具有以下特征两个Key的HashCode一样的话,比较Key的值(通过Key的equals方法) 不可能存在Key相同的Entry
2015-11-12 17:15:25
302
原创 Servlet学习笔记
一、开发环境:Intellij IDE 14.1.4 二、 1、遇到问题:maven的本地仓库放到默认地址下面C:\Users\weiwei\.m2的话,会占用C盘很大空间 解决方法:可以在Intellij里面setting菜单中配置maven的本地仓库 为其他盘 2、遇到问题:页面乱码。 解决方法:第一检查 html文件中加page language="java"content
2015-09-25 13:40:28
318
wince32编程-制作像框-画图工具
2011-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人