![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
Aaron被占用了
这个作者很懒,什么都没留下…
展开
-
服务之间通信 用 RPC 还是 MQ
服务之间通信用什么比较好呢?先简单说一下RPC 和 MQ 是什么RPC 远程过程调用 简单说明就是 一个进程提供服务 给另一个服务像调用本地方法一样调用. 如何像本地方法一样调用呢 ?rpc 框架会屏蔽底层逻辑 比如消息通信, 数据序列化和反序列化,服务注册发现等逻辑。网上找的一张图 说明rpc 调用过程MQ消息队列生产者 发送消息到 mq 服务端,服务端保存消息记录 消费者从MQ获取消息一张图大致看下:MQ和 RPC 虽然都是属...原创 2021-09-05 20:51:22 · 426 阅读 · 0 评论 -
httpservlet 中的两个service方法
1.public void service(ServletRequest req, ServletResponse res)2.protected void service(HttpServletRequest req, HttpServletResponse resp)void service这个方法 是tomcat 中请求调用 在这个方法内部在调用 protected void se原创 2017-09-18 21:56:11 · 3467 阅读 · 0 评论 -
ServletContextListener
在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理S原创 2017-09-19 21:23:19 · 247 阅读 · 0 评论 -
java 中的四种引用
public class YyPractice { public static void main(String[] args) { // 强引用 不会被回收 User u = new User(); // 软引用 内存紧张的时候会被回收 SoftReference sr = new SoftReference(new User()); // 弱引用 不管内存是否足够 系统原创 2017-09-28 21:52:26 · 162 阅读 · 0 评论 -
String源码总结
1.indexof 方法 if (fromIndex >= sourceCount) {return (targetCount == 0 ? sourceCount : -1);}if (fromIndex fromIndex = 0;}if (targetCount == 0) {return fromIndex;}char first =原创 2017-10-10 21:36:02 · 192 阅读 · 0 评论 -
process
创建 Process的方法1.Runtime.getRuntime().exec()2.ProcessBuilder的start方法,这个方法是调用了java.long包中的ProcessImpl类中的start()方法 这个类的修饰符是默认的 只能在本包中访问Process 中的 waitFor() 等进程执行完 才会向后执行 是一个阻塞的方法原创 2017-10-10 21:35:02 · 130 阅读 · 0 评论 -
java多线程编程核心技术第一章笔记
1.实现线程的两种方式继承Thread类实现Runnable接口在源码总其实Thread 是继承Runnable接口的启动线程调用的是线程的start方法,并不是run方法如果调用run方法,只是和普通的方法调用时一样的并没有启动一个线程另外start方法 调用 不代表线程的执行顺序,只是表明线程处于就绪状态随时都可以执行两种方式的对比使用继原创 2017-10-19 22:18:08 · 161 阅读 · 0 评论 -
java 多线程核心技术 第四章 lock的使用
1.使用ReentrantLock类jdk1.5 新加 ReentrantLock 比synchronized更加灵活lock.lock 获得对象锁lock.unlock释放锁lock 中实现wait notify 的功能 需要借助Condition对象Condition 也是jdk1.5 出现的 可以实现多路通知 也就是在一个lock对象中可以创建多个conditio原创 2017-10-30 22:51:11 · 193 阅读 · 0 评论 -
java多线程核心技术 第三章线程间通信
1.等待通知机制wait/notify如果有多个线程等待的时候 notify会随机挑出一个wait状态的线程发出notify通知,并使它等待获取该对象的对象锁。 注意:在执行notify方法后,当前线程不会马上释放该对象锁,呈wait状态的线程并不能马上获取该对象锁,要等到执行notify方法的线程将程序执行完,也就是退出synchronized代码块后,当前线程才会释放锁,而呈wait状原创 2017-10-28 23:05:03 · 177 阅读 · 0 评论 -
idea 使用
找不见 创建package 和 class右键点击项目 打开open Modeles settings 把选中src目录 然后点击Sources原创 2017-11-09 10:22:56 · 156 阅读 · 0 评论 -
java多线程核心技术 第五章 定时器Timer
实现指定时间执行任务实现按指定周期执行任务Timer 主要作用是设置计划任务,但封装任务的类却是TimerTask方法 schedule(TimerTask task,Date time) 在指定的日期执行一次某一任务。 计划时间晚于当前 按照计划时间执行,计划时间早于当前那么立即执行在new一个Timer 的时候如果不设置为守护线程那么这个线程调度类Timer 将会一直执行原创 2017-10-31 19:04:04 · 179 阅读 · 0 评论 -
java 多线程核心技术第二章笔记
1.synchronized 同步方法注意点:方法内部的变量是不会存在线程安全的问题的实例变量 也就是成员变量吧 才会出现线程安全的问题两个线程访问同一个对象中的实例变量可能会出现非线程安全的问题。要防止这个问题的发生可以在方法上加同步synchronized关键字 对这个方法加锁。这样的话一个线程持有这把同步锁那么其他线程在执行这个方法的时候就会等待。注意:java中原创 2017-10-23 21:43:30 · 146 阅读 · 0 评论 -
Collections.synchronizedMap(new HashMap())的问题
Map m = Collections.synchronizedMap(new HashMap()); Set s = m.keySet(); // Needn't be in synchronized block synchronized(m) { // Synchronizing on m, not s! Iterator i = s.iterator(); // Must be原创 2018-01-17 22:15:19 · 2139 阅读 · 0 评论 -
并发和并行有什么区别?
1.并行是在同一时刻执行多个事件,并发是在同一事件段内执行多个事件2.并行发生在不同的实体上,并发发生在同一个实体上。并发编程可以充分的利用cpu的,达到最高的处理性能那为什么并发就能充分利用cpu的执行能力首先执行多个任务如果是串行执行那么cpu一定会存在等待一个任务执行完去执行下一个任务但是如果是并发开启多个线程去分别执行不同的任务的时候,这个时候便可以充分的利用cpu,多个线程进行切换去抢占...原创 2018-03-13 22:20:23 · 5837 阅读 · 0 评论 -
intellij 下 使用maven +mybatis的generator 生成代码的配置
1.首先 在maven的pom文件中 添加插件<!-- mybatis generator 自动生成代码插件 --><plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifact...原创 2018-05-02 22:39:35 · 227 阅读 · 0 评论 -
jdk1.7 try-with-resource
import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;public class AutoCloseblePractice {public static void main(String[] args) {try ( A a = new A原创 2017-09-25 22:59:54 · 147 阅读 · 0 评论 -
IdentityHashMap 和 HashMap 的区别
在比较key值的时候是不同的identityHashMap 在比较key的时候 比较的是地址值k1==k2而 hashmap 在比较key的时候是比较的内容k1 == null ? k2 == null:k1.equals(k2)都可以存 null值IdentityHashMap ihm = new IdentityHashMap();HashMap m =原创 2017-08-30 23:13:42 · 1050 阅读 · 0 评论 -
集合
集合知识点 1136 一个图 一个类 Collections 封装了list的一系列算法 排列 排序 二分法查找三个知识点 For 增强(能看懂) Generic 泛型 尽量用泛型写程序 自动拆箱装箱六个接口 collection set无序 不可重复 list 有序 可重复 map key ->value letrat原创 2016-05-19 20:43:56 · 220 阅读 · 0 评论 -
代码 示例 让每个方法尽量粒度小点
public List getTasks() { List l_tsk = getAllTasksFromDb(); List tasks = new ArrayList(); for (int i = 0; i Map tmp = (Map) l_tsk.get(i); Object[原创 2017-07-24 11:08:42 · 456 阅读 · 0 评论 -
continue 返回到最外层
outer: for (String line : lines) { for (String filter : filters) { if (StringUtils.containsIgnoreCase(line, filter)) { result.add(line);原创 2017-07-24 17:08:27 · 2040 阅读 · 0 评论 -
数组去空 去0
public class ArrParse { //去空 去0 public static String[] parseStringArr(String[] aa) { List tmp = new ArrayList(); for (String str : aa) { if (str != null && str原创 2017-08-09 09:54:44 · 556 阅读 · 0 评论 -
月份判断季度
public class Mouth2SeasonUtil { public static int Mouth2Season(String mouth) throws Exception { int imouth = NumberParseUtil.parseInt(mouth); if (imouth return 1;/原创 2017-08-09 09:55:27 · 1443 阅读 · 0 评论 -
字符串类型转换
public class NumberParseUtil { private static final Logger logger = LoggerFactory .getLogger(NumberParseUtil.class); public static int parseInt(String str) throws Exception {原创 2017-08-09 09:56:23 · 151 阅读 · 0 评论 -
java 中的process类
JAVA 中 process 类的使用 Process是一个抽象类 封装了一个进程创建 process Process p = Runtime.getRuntime().exec(cmd); cmd 是字符串类型 也可以是字符串类型的数组 内容就是 命令行Process p =ProcessBuilder.start(); Process 类提供了子进程的输入流,子进程的原创 2017-07-25 09:37:19 · 10898 阅读 · 0 评论 -
找出字符串中连续的子字符
public class StringUtil {public static String[] lxString(String str) {char[] chars = str.toCharArray();List list = new ArrayList();for (int i = 0; i System.out.println(i);int a = chars[i +原创 2017-09-24 22:03:57 · 786 阅读 · 0 评论 -
配置java 和tomacat环境过程
配置java 环境 先下载好jdk 安装时候注意 首先安装的是jdk 其次是jre 如果要都安装的话 目录要分开放 否则 jdk里边的javac会被覆盖注意:要在环境变量处,配置JAVA_HOME,注意变量值是jdk的主目录,不是bin目录,并且不要加分号在配置tomacat的时候 会闪一下就退出的问题 就是没有配置好环境 在tomacat 的bin目录下找到startup原创 2016-05-25 22:06:02 · 734 阅读 · 0 评论