work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 59 下一页

2019年12月28日

摘要: 基本区别: 1、 sleep()来自Thread, wait() 来自Object2、sleep可以在任何地方使用wait只能在synchronized方法或者synchronized块中使用 (因为wait会释放锁,所有只有获取了锁,才会释放锁) 最主要的本质区别Thrad.sleep只会让出CP 阅读全文

posted @ 2019-12-28 21:25 work hard work smart 阅读(902) 评论(0) 推荐(0)

摘要: 方法有以下几种: 主线程等待法 使用Thread类的join()阻塞当前线程以等待子线程处理完毕 通过Callable接口实现: 通过FutureTask Or线程池获取 一、主线程等待法 如下代码 打印的结果为 将它改造成主线程等待法 这样,5秒后就能打印name的值 二、使用Thread类的jo 阅读全文

posted @ 2019-12-28 19:29 work hard work smart 阅读(457) 评论(0) 推荐(0)

2019年12月25日

摘要: 35、并行和并发的区别? 并行:多个处理器或者多核处理器同时处理多个不同的任务。 并发: 一个处理器同时处理多个任务 36、线程与进程的区别 一个程序至少有一个进程,一个进程下至少有一个线程。一个程序下可以有多个线程来增加程序的执行速度 37、守护线程是什么? 守护线程是运行在后台的一种特殊进程,它 阅读全文

posted @ 2019-12-25 22:25 work hard work smart 阅读(207) 评论(0) 推荐(0)

2019年12月11日

摘要: 1、probe介绍 probe也叫psi-probe,是lambdaprobe的一个分支版本,用于Tomcat应用状态的监控、数据库连接监控、应用监控、日志信息监控、监控集群运行状态、监控所以线程的状态、统计Tomcat连接等。 2、下载 https://github.com/psi-probe/p 阅读全文

posted @ 2019-12-11 22:43 work hard work smart 阅读(539) 评论(0) 推荐(0)

2019年12月8日

摘要: 修改tomcat-users.xml <role rolename="manager-gui" /> <role rolename="manager-script" /> <role rolename="manager" /> <role rolename="tomcat" /> <user use 阅读全文

posted @ 2019-12-08 18:11 work hard work smart 阅读(782) 评论(0) 推荐(0)

2019年12月2日

摘要: 获取tomcat进程pid ps -ef | grep tomcat 统计该tomcat进程内的线程个数 ps -Lf 558899 | wc -l 阅读全文

posted @ 2019-12-02 15:30 work hard work smart 阅读(390) 评论(0) 推荐(0)

2019年10月23日

摘要: Oracle导出表结构 select A.Table_Name 表名 , -- A.column_name 字段名 A.column_name 字段名, A.data_type 数据类型, A.data_length 长度, A.Data_scale 小数位, A.nullable 允许空值, A. 阅读全文

posted @ 2019-10-23 12:09 work hard work smart 阅读(719) 评论(0) 推荐(0)

2019年9月16日

摘要: 一、Struts输入校验 1、创建register.jsp 2、struts.xml配置 3、创建registerResult.jsp 4、创建RegisterAction.java 重写validate方法 二、FieldError使用 1、在RegisterAction.java增加FieldE 阅读全文

posted @ 2019-09-16 22:37 work hard work smart 阅读(177) 评论(0) 推荐(0)

2019年9月14日

摘要: 实现的目标,将页面中的字符转为对象,如Larry;123456 转为 User对象,username为Larry,password为123456。 如何实现: Struts的类型转换,对于8个原生数据类型以及Date,String等常见类型,Struts2可以使用内建的类型转换器实现自动转换;但对于 阅读全文

posted @ 2019-09-14 18:34 work hard work smart 阅读(169) 评论(0) 推荐(0)

2019年9月4日

摘要: 一、Struts2工作原理 如下图: 二、Struts2配置文件 1、web.xml 任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置了web.xml文件的Servlet才会被应用加载 通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架 阅读全文

posted @ 2019-09-04 23:33 work hard work smart 阅读(232) 评论(0) 推荐(0)

2019年8月19日

摘要: 一、创建Controller 一个方法是用传统IO来下载文件,一个是NIO下载文件 二、创建单元测试 输出结果 阅读全文

posted @ 2019-08-19 14:39 work hard work smart 阅读(548) 评论(0) 推荐(0)

2019年8月18日

摘要: 我的以Netty Socket编程的代码为例, 1、EventLoopGroup 进入EventLoopGroup,这是一个特殊的EventExecutorGroup,在事件循环中,在selection选择的时候,可以注册Channel。(Channel可以理解为跟客户端的连接) 2、EventEx 阅读全文

posted @ 2019-08-18 21:26 work hard work smart 阅读(1125) 评论(0) 推荐(0)

2019年8月17日

摘要: 一、用户空间与内核空间切换(4次切换) 二、操作系统层面的零拷贝 更进一步 阅读全文

posted @ 2019-08-17 23:45 work hard work smart 阅读(295) 评论(0) 推荐(0)

摘要: 2、创建"NioTest13_In.txt文件 3、执行后生成了NioTest13_Out.txt 文件 可以知道使用: Charset charset = Charset.forName("iso-8859-1"); //utf-8 使用iso-8859-1和utf-8,中文显示都是正常的 二、字 阅读全文

posted @ 2019-08-17 16:54 work hard work smart 阅读(244) 评论(0) 推荐(0)

摘要: 1、创建服务端代码 2、创建客户端代码 3、测试 1) 启动服务端 2) 启动两个客户端 3) 输出结果 NioServer输出 第一个NioClient输出。连接建立后,输入hello 第二个NioClient输出。 连接建立后,输入world 阅读全文

posted @ 2019-08-17 16:27 work hard work smart 阅读(183) 评论(0) 推荐(0)

摘要: 1、创建NioNest12类 一个线程监听5个端口的事件 启动NioTest12,监听如下五个端口 使用命令行访问 2、telnet localhost 5000,并发送hello wold 输出如下: 3、telnet localhost 5001,并发送hello wold 输出如下: 阅读全文

posted @ 2019-08-17 14:45 work hard work smart 阅读(213) 评论(0) 推荐(0)

2019年8月16日

摘要: 1、引入模板thymeleaf 增加配置 2、增加接口 3、创建Html页面 index.html 路径为:resources/templates/index.html 4、查看效果 阅读全文

posted @ 2019-08-16 18:12 work hard work smart 阅读(527) 评论(0) 推荐(0)

2019年8月14日

摘要: 上一篇讲到的DirectByteBuffer继承自MappedByteBuffer 一、MappedByteBuffer MappedByteBuffer的定义: A direct byte buffer whose content is a memory-mapped region of a fi 阅读全文

posted @ 2019-08-14 20:40 work hard work smart 阅读(411) 评论(0) 推荐(0)

2019年8月12日

摘要: 一、直接缓存 这个例子的区别就是 ByteBuffer.allocateDirect(512); 进入allocateDirect方法 进入DirectByteBuffer构造函数 Native方法:unsafe.allocateMemory public native long allocateM 阅读全文

posted @ 2019-08-12 22:39 work hard work smart 阅读(504) 评论(0) 推荐(0)

2019年8月11日

摘要: 一、ByteBuffer类型化的put与get方法 put和get的类型要一致。如第一个是putInt, 输出的使用第一个要用getInt。 二、Slice Buffer 三、只读Buffer 对只读Buffer进行修改,将抛出异常 阅读全文

posted @ 2019-08-11 22:29 work hard work smart 阅读(294) 评论(0) 推荐(0)

上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 59 下一页