2018年12月29日

CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法

摘要: sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > /tmp/123/error.txt 将 catalina.out 文件的中的日志信息,按 2016-11-02 15:00 到 2016-11-02 15:05 时间段 阅读全文

posted @ 2018-12-29 15:20 我是司 阅读(729) 评论(0) 推荐(0)

getField和getDeclaredField的区别

摘要: 这两个方法都是用于获取字段getField 只能获取public的,包括从父类继承来的字段。getDeclaredField 可以获取本类所有的字段,包括private的,但是不能获取继承来的字段。 (注: 这里只能获取到private的字段,但并不能访问该private字段的值,除非加上setAc 阅读全文

posted @ 2018-12-29 14:29 我是司 阅读(4573) 评论(0) 推荐(1)

使用HSQLDB 客户端(jvm自带数据库使用技巧)

摘要: 数据库连接jar包 http://how2j.cn/frontdownload?bean.id=1169 hsqldb.jarservlet-2_3-fcs-classfiles.zipsqltool.jar import org.hsqldb.util.DatabaseManagerSwing; 阅读全文

posted @ 2018-12-29 14:16 我是司 阅读(1858) 评论(1) 推荐(0)

PageHelper分页

摘要: 至少使用JDK8版本,请下载JDK8或者更高版本: 下载以及配置JDK环境 因为是第三方插件,所以需要额外的jar包,都在右上角提供了下载:pagehelper-5.1.0-beta2.jar,jsqlparser-1.0.jar 配置插件 在mybatis-config.xml中,添加15-19行 阅读全文

posted @ 2018-12-29 13:51 我是司 阅读(625) 评论(0) 推荐(0)

使用exe4j打包Java程序

摘要: 1、下载及安装exe4j的破解版 http://www.pc0359.cn/downinfo/52705.html#download 1、下载及安装exe4j的破解版 http://www.pc0359.cn/downinfo/52705.html#download 1、下载及安装exe4j的破解版 阅读全文

posted @ 2018-12-29 13:25 我是司 阅读(1429) 评论(1) 推荐(0)

有图形界面的聊天程序

摘要: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 阅读全文

posted @ 2018-12-29 11:52 我是司 阅读(510) 评论(0) 推荐(0)

同时收发消息

摘要: 这是因为接受和发送都在主线程中,不能同时进行。 为了实现同时收发消息,基本设计思路是把收发分别放在不同的线程中进行1. SendThread 发送消息线程2. RecieveThread 接受消息线程3. Server一旦接受到连接,就启动收发两个线程4. Client 一旦建立了连接,就启动收发两 阅读全文

posted @ 2018-12-29 11:46 我是司 阅读(429) 评论(0) 推荐(0)

服务端和客户端互聊

摘要: package socket; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.i 阅读全文

posted @ 2018-12-29 11:39 我是司 阅读(324) 评论(0) 推荐(0)

使用Scanner

摘要: 在上个步骤中,每次要发不同的数据都需要修改代码 可以使用Scanner读取控制台的输入,并发送到服务端,这样每次都可以发送不同的数据了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 阅读全文

posted @ 2018-12-29 11:35 我是司 阅读(297) 评论(0) 推荐(0)

收发字符串

摘要: 直接使用字节流收发字符串比较麻烦,使用数据流对字节流进行封装,这样收发字符串就容易了 1. 把输出流封装在DataOutputStream中 使用writeUTF发送字符串 "Legendary!" 2. 把输入流封装在DataInputStream 使用readUTF读取字符串,并打印 1 2 3 阅读全文

posted @ 2018-12-29 11:33 我是司 阅读(311) 评论(0) 推荐(0)

收发数字

摘要: 一旦建立了连接,服务端和客户端就可以通过Socket进行通信了 1. 客户端打开输出流,并发送数字 110 2. 服务端打开输入流,接受数字 110,并打印 Server.java Client.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 阅读全文

posted @ 2018-12-29 11:32 我是司 阅读(188) 评论(0) 推荐(0)

建立连接

摘要: 1. 服务端开启8888端口,并监听着,时刻等待着客户端的连接请求 2. 客户端知道服务端的ip地址和监听端口号,发出请求到服务端 客户端的端口地址是系统分配的,通常都会大于1024 一旦建立了连接,服务端会得到一个新的Socket对象,该对象负责与客户端进行通信。 注意: 在开发调试的过程中,如果 阅读全文

posted @ 2018-12-29 11:30 我是司 阅读(367) 评论(0) 推荐(0)

判断本网段有多少可用的ip地址

摘要: 为了提高效率,使用多线程方式同时ping。 但是如果开启255个线程,又会因为网络端口太拥挤,会被判定为无法ping通。所以本例使用java自带线程池,线程池的连接数还不能太大,启动了15个线程。 等待所有的线程结束后打印出ping通了的ip地址。 package AtomicInteger; im 阅读全文

posted @ 2018-12-29 11:18 我是司 阅读(2068) 评论(0) 推荐(0)

java执行windows 的cmd 命令

摘要: //获取运行时 Runtime rt = Runtime.getRuntime(); //获取进程 Process p = rt.exec(String[] cmdarray); 或者 Process p = rt.exec(String cmd); 如果p不为空,那么要清空 if(null!=p) 阅读全文

posted @ 2018-12-29 11:10 我是司 阅读(8554) 评论(0) 推荐(1)

使用java 执行ping命令

摘要: 借助 Runtime.getRuntime().exec() 可以运行一个windows的exe程序如图,使用java运行 ping 192.168.2.106,返回这样的字符串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 阅读全文

posted @ 2018-12-29 10:52 我是司 阅读(4734) 评论(0) 推荐(0)

C语言的printf输出格式控制

摘要: printf大家都耳熟能详,但是能真正将其用法弄透的估计很少见。 转一篇,改天整理。 1.转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] 阅读全文

posted @ 2018-12-29 10:50 我是司 阅读(5501) 评论(0) 推荐(1)

获取本机IP地址

摘要: 1 2 3 4 5 6 7 8 9 10 11 12 13 package socket; import java.net.InetAddress; import java.net.UnknownHostException; public class TestSocket { public stat 阅读全文

posted @ 2018-12-29 10:50 我是司 阅读(368) 评论(0) 推荐(0)

synchronized 同步对象概念

摘要: 解决上述问题之前,先理解synchronized关键字的意义如下代码: Object someObject =new Object(); synchronized (someObject){ //此处的代码只有占有了someObject后才可以执行 } synchronized表示当前线程,独占 对 阅读全文

posted @ 2018-12-29 10:37 我是司 阅读(1145) 评论(0) 推荐(0)

线程交互

摘要: 使用synchronized方式进行线程交互,用到的是同步对象的wait,notify和notifyAll方法Lock也提供了类似的解决办法,首先通过lock对象得到一个Condition对象,然后分别调用这个Condition对象的:await, signal,signalAll 方法注意: 不是 阅读全文

posted @ 2018-12-29 09:50 我是司 阅读(380) 评论(0) 推荐(0)

总结Lock和synchronized的区别

摘要: 1. Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现,Lock是代码层面的实现。2. Lock可以选择性的获取锁,如果一段时间获取不到,可以放弃。synchronized不行,会一根筋一直获取下去。 借助Lock的这个特性,就能够规避死锁 阅读全文

posted @ 2018-12-29 09:50 我是司 阅读(255) 评论(0) 推荐(0)

导航