块代码
金正则
这个作者很懒,什么都没留下…
展开
-
js 计算相隔天数
1 取当天时间0点的毫秒数:new Date(new Date().toLocaleDateString())当天0点var current = new Date(new Date().toLocaleDateString()).getTime();2 取另个日期的0点毫秒数:用“yyyy-MM-dd”初始化new Date(“yyyy-MM-dd”)var hbpNextFollowupDate = new Date(hbpNextFollowupDate.getTime();3计算相隔天数v.原创 2022-07-15 10:33:26 · 374 阅读 · 0 评论 -
OutOfMemoryError OOM 几种异常
import org.springframework.cglib.proxy.Enhancer;import org.springframework.cglib.proxy.MethodInterceptor;import org.springframework.cglib.proxy.MethodProxy;import java.lang.reflect.Method;import java.nio.ByteBuffer;import java.util.ArrayList;import.原创 2021-03-05 16:07:33 · 175 阅读 · 0 评论 -
强引用 软引用 弱引用 虚引用
import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;import java.util.WeakHashMap;/** * *强引用:JVM不回收,出现OOM * 把一个对象赋值给一个引用变量,这个引用变量就是一个强引用。java内存泄漏的主要原因之一。 .原创 2021-03-04 16:57:39 · 102 阅读 · 1 评论 -
垃圾回收GC
/** * 什么是垃圾:内存中已经不再被使用的空间。 * 如何判断对象是否被GC: * 1 引用计数器值为0:不用,不能解决对象之间互相循环引用问题。 * 2 枚举根节点做可达性分析(根搜索路径):GC roots(tracing GC)根集合:一组必须活跃的引用。给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可达的)对象就被判定为存活,没有遍历到的判定为死亡。 * 适用于复制、标记清除、标记压缩。 * java中可作为GC Roots的对象: * ..原创 2021-03-01 15:28:11 · 199 阅读 · 0 评论 -
死锁 产生原因 如何查看
package com.founder.rhip.drs.controller;/** *死锁:指两个或者两个以上线程在执行过程中因为争夺资源而造成的一种相互等待的现象。若无外力干涉,他们将一直等待下去。 * 如果系统资源重组,进程的资源请求都能得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。 * *产生原因: * 1系统资源不足 * 2进程运行推进的顺序不合适 * 3资源分配不当 * *解决: * jps命令定位进程号:jps -l * jstack找到死.原创 2021-03-01 10:51:22 · 206 阅读 · 0 评论 -
select & input 设置disabled属性后传值到后台
当设置了select/input的disabled属性后,后台无法通过request.getParameter("name")得到其内容,若需要传值到后台,可以在提交的时候,取消其disabled属性。$("[disabled]").each(function() {//移除disable,后台方可取值 if (parseInt($(this).val()) != -1) { $(this).attr("disabled", false); }原创 2021-02-23 16:41:43 · 540 阅读 · 0 评论 -
开发 自写线程池
/** * 工作中3个线程池都不用,需要手写ThreadPoolExecutor的原因: * (线程资源必须通过线程池提供,不允许在应用中自行显示创建线程:使用线程池的好处是减少创建和销毁线程时消耗的时间以及系统资源的开销,解决资源不足问题。 * 如果不食用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或者“过度切换”的问题) * 1 newFixedThreadPool和newSingleThreadExecutor: 允许请求队列LinkedBlockingQueue默认的最大长度.原创 2021-02-19 11:11:18 · 119 阅读 · 0 评论 -
ExecutorService 线程池 newFixedThreadPool newSingleThreadExecutor newCachedThreadPool
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 第4种获得使用多线程的方式 线程池 * Executors.newFixedThreadPool(5): * 1 创建一个定长线程池,可控线程最大并发数,超出的线程会在队列种等待。 * 2 newFixedThreadPool创建的线程池的corePoolSize和maximumPoolSize相等,使用LinkedB.原创 2021-02-18 21:28:20 · 356 阅读 · 0 评论 -
线程池 作用和特点
线程池的主要作用:控制运行的线程的数量,处理工程中将线程放入队列,然后在线程创建后启动这些任务,如果线程数量超出了最大数量,超出数量的线程排队等候,等其他线程执行完之后,再从队列中取出任务执行。特点:线程复用;控制最大并发数;管理线程。1 降低资源消耗。通过复用线程,降低创建和销毁线程的资源消耗。2 提高响应速度。当任务到达后,任务可以不需要等到线程创建就可以立即执行。3 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,会占用系统资源,降低系统稳定性,使用线程池可以进行统一分配,调优和原创 2021-02-18 20:13:22 · 495 阅读 · 0 评论 -
Callable FutureTask Thread 有返回结果的线程
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * 1 Thread 需要传入new Runnable(),则可以传入实现了Runnable接口的子接口。 FutureTask<V>实现了Runnable接口。 * Thread thread1 = new Thread(ne..原创 2021-02-18 15:03:12 · 114 阅读 · 0 评论 -
BlockQueue 生产消费 不需要判断阻塞唤醒条件
package com.founder.rhip.drs.controller;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;/** * */public class ProdConsu.原创 2021-02-08 11:06:25 · 147 阅读 · 0 评论 -
题目:顺序打印:a打印5次;b打印10次;c打印15次,循环10次
public class SyncAndReentrantLockDemo { public static void main(String[] args) { final ShareResource shareResource = new ShareResource(); for (int i = 0; i < 11; i++) { } Thread thread = new Thread(new Runnable() {.原创 2021-02-07 17:31:48 · 237 阅读 · 0 评论 -
synchronized和ReentrantLock的区别;新Lock的好处;
/** * synchronized和ReentrantLock的区别;新Lock的好处; * 1 原始结构 * synchronized是关键字,属于jvm层(monitorenter:底层通过monitor来完成的,wait/notify方法也依赖monitor,只有在同步块或者同步方法中才可以调用wait/notify * 。monitorexit) * ReentrantLock 是具体类,是api层面的锁 * 2使用方法 * synchronized不需要用户手动释放锁.原创 2021-02-07 17:05:01 · 284 阅读 · 0 评论 -
生产者消费者模式(传统版) ReentrantLock 空调两个遥控器控制温度
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 生产者消费者模式(传统版) * 一个初始值为0的变量,俩个线程d对其交替操作,一个加1一个减1 循环5次 * * 1 线程 操作 资源类 * 2 判断 干活 通知 * 3 防止虚假唤醒机制 : 多线程的判断用wh..原创 2021-02-07 15:59:16 · 155 阅读 · 0 评论 -
阻塞队列 BlockingQueue
import java.util.concurrent.BlockingQueue;import java.util.concurrent.SynchronousQueue;/** *ArrayBlockingQueue: 是一个基于数组结构的有界阻塞队列,此队列按照FIFO(先进先出)原则对元素进行排序; *LinkedBlockingDeque:一个基于链表结构的有界阻塞队列(默认为Integer。MAX_VALUE 21忆),此队列按照FIFO(先进先出)原则对元素进行排序,吞吐量高于..原创 2021-02-07 15:12:33 · 150 阅读 · 1 评论 -
Semaphore 停车场争车位 多个线程抢多个资源
import java.util.concurrent.Semaphore;/** * Semaphore:信息量主要用于两个目的,一个用于多个资源的互斥使用,一个用于并发线程数的控制 * 停车场争车位:多个线程抢多个资源;未抢到的等待别的离开让出。 */public class SemaphoreDemo { public static void main(String[] args) { final Semaphore semaphore = new Semaph.原创 2021-02-05 11:13:10 · 563 阅读 · 0 评论 -
CyclicBarrier 计数器:增加到一定数值,才可以调用某线程
import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/** * 计数器:增加到一定数值,才可以调用某线程 * 集齐7颗龙珠。才可召唤神龙 * 人到齐了才能开会 */public class CyclicBarrierDemo { public static void main(String[] args) { final Cycli.原创 2021-02-05 09:14:23 · 111 阅读 · 0 评论 -
CountDownLatch 枚举类 秦灭六国 统一
import java.util.concurrent.CountDownLatch;/** * 多线程完成之后,主线程才可以继续;倒计时 * 例子:秦灭六国 统一 */public class CountDownLatchDemo { //秦灭六国 统一 private static final int num = CountryEnum.values().length; CountDownLatch countDownLatch= new CountDo...原创 2021-02-04 22:16:39 · 200 阅读 · 0 评论 -
多线程完成之后,主线程才可以继续;倒计时
import java.util.concurrent.CountDownLatch;/** * 多线程完成之后,主线程才可以继续;倒计时 * 例子:上自习同学都离开,才可以锁门 */public class CountDownLatchDemo { private static final int num = 6; CountDownLatch countDownLatch= new CountDownLatch(num); for (int i = 0; i .原创 2021-02-04 22:00:34 · 100 阅读 · 0 评论 -
读写锁:多个线程同时读共享资源,但是有线程对共享资源写,则其他线程不能读 也不能写
import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * 读写锁:多个线程同时读共享资源,但是有线程对共享资源写,则其他线程不能读 也不能写 * 读读共存;读写不共存;写写不共存 * 写:原子+独占 */public class ReadWriteLockDemo { public static void main(Str.原创 2021-02-04 21:30:53 · 242 阅读 · 0 评论 -
ABA问题的解决
import javax.swing.plaf.PanelUI;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicStampedReference;/** * ABA问题的解决: */public class ABADemo { static AtomicInteger atomi.原创 2020-11-12 16:00:52 · 189 阅读 · 2 评论 -
singleton 单线程多线程 单例模式
public class SingletonDemo { private static SingletonDemo instance = null; private SingletonDemo(){ System.out.println(Thread.currentThread().getName() + " 我是构造方法SingletonDemo()"); } public static SingletonDemo getInstance(){ .原创 2020-10-23 17:52:02 · 140 阅读 · 0 评论 -
volatile
package com.founder.rhip.ehr.dto.he;import org.omg.Messaging.SYNC_WITH_TRANSPORT;import sun.management.snmp.jvminstr.JvmThreadInstanceEntryImpl;import sun.org.mozilla.javascript.internal.ast.WhileLoop;import java.util.concurrent.TimeUnit;import jav.原创 2020-10-23 17:26:11 · 139 阅读 · 0 评论 -
验证volatile不保证原子性
验证volatile不保证原子性* 原子性:完整性,不可分割性。某个线程在做某个业务时,不可以被加塞或被分割,需要整体完成,要么同时成功,要么同时失败。* volatile不保证原子性原因:i++,实际上分为4步,取值,+,更新主物理内存;volatile不保证更新主物理内存时,线程竞争存在覆盖重写,丢数据。* 解决方法:1 使用synchronized (大材小用) 2 使用juc下的 AtomicInteger(原子……)代码:class MyData{.原创 2020-10-20 17:43:08 · 221 阅读 · 0 评论 -
验证volatile可见性
主物理内存;线程工作内存;某个线程工作内存修改之后更新主物理内存的数据,别的线程的工作内存立马更根据著物理内存的更新而更新,为volatile可见性代码:import java.util.concurrent.TimeUnit;class MyData{ //int number = 0 ; volatile int number = 0 ; public void setTo60(){ this.number = 60; }}/** * .原创 2020-10-20 15:40:17 · 161 阅读 · 0 评论 -
alibaba的druid数据源 sql 监控
1配置 web.xml 加入代码:<!--使用druid监控 过滤器中的配置,是用来定义我们的监控选项--> <filter> <filter-name>DruidWebStatFilter</filter-name> <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class> &...原创 2020-09-03 09:30:31 · 667 阅读 · 0 评论 -
读取本地图片
//取得绝对路径String filePath ="/F:/workspase/TngFaDo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/fff-web/WEB-INF/classes/ded/man.png";InputStream in = new FileInputStream(filePath);BufferedImage bufferedImage = ImageIO.read(in);OutputStre原创 2020-08-26 15:00:01 · 270 阅读 · 0 评论 -
socket tcp/udp
一 : TCP1 TCPServer.javaimport java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class TCPServer { public static void main(String[] args ) throws IOException {...原创 2020-02-26 13:27:34 · 123 阅读 · 0 评论 -
将英文时间字符串转化为Date
1 方法 (将英文时间字符串转化为Date)public Date parseDateFormat(String dateStr) throws ParseException{ SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy", Locale.US );原创 2017-08-21 14:15:06 · 2367 阅读 · 1 评论 -
axis2 调用webservice 2
【AXIS2]字符串转换为OMElement的问题public static OMElement toOMElement(String xmlStr, String encoding) { OMElement xmlValue; try { xmlValue = new StAXOMBuilder(new ByteArrayInputStream(x转载 2017-06-29 16:41:48 · 195 阅读 · 0 评论 -
select下拉列表, 从数据库查询,动态添加选项option
1 jsp 编码原创 2017-06-06 15:25:23 · 20493 阅读 · 0 评论 -
报表导出
js: function downExcel() { location.href = contextPath + "/downExcel"; }java: @RequestMapping("/downExcel") @ResponseBody public void downExcel(HttpServletReque原创 2017-05-18 11:28:12 · 315 阅读 · 0 评论 -
excel 下载模板
类:1. import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util原创 2017-05-17 17:07:47 · 260 阅读 · 0 评论 -
BASE64编码解码快代码
一: import java.io.UnsupportedEncodingException;/** * BASE64编解码工具 */public class Base64Util { /** * BASE64编码 * * @param stringbyte * @return */ p原创 2017-05-17 16:32:57 · 493 阅读 · 0 评论 -
jsp 动态显示列
1 controller.java List ths = new ArrayList(); // ths = [鼠疫, 霍乱]--列名 List tds = new ArrayList(); // tds = [101, 102]--列名对应的代码 List> list = new ArrayL原创 2017-08-25 16:08:29 · 1669 阅读 · 0 评论 -
js 写 select 对应年的 自然周-日期 动态下拉列
1 a.jsp 2 a.js if($.isEmpty($("#weekSelect").val())){ initWeek(); } function initWeek(){ var year = '2017'; var text = year +原创 2017-08-25 16:56:35 · 1034 阅读 · 0 评论 -
jsp 根据输入 动态计算 和
页面根据各行各列输入值,自动计算总计年级学校 总人数 女生 男生A.1年级 12 6 6A.2年级 14 8 6A.3年级 15 6 9A学校 41 20 21原创 2017-11-17 18:18:49 · 697 阅读 · 0 评论 -
Eclipse上创建一个Maven+Spring MVC的HelloWord项目
原文地址:http://blog.csdn.net/u012660464/article/details/53199439使用了框架进行开发以后,我们用到的jar包会越来越多,每次都手动下载然后拷贝进项目的话,这样会比较麻烦,而且有时候不能很好地处理jar包传递依赖的问题。庆幸的是,Maven出现了,它可以极大地方便了我们对依赖的管理。只要填写好pom.xml这个配置文件,那么Maven会转载 2017-11-21 13:59:10 · 309 阅读 · 0 评论 -
Eclipse上Maven+Spring MVC的HelloWord项目的tiles整合
1 pom.xml dependency> groupId>org.apache.tilesgroupId> artifactId>tiles-extrasartifactId> version>3.0.7version> dependency> depend原创 2017-11-22 15:19:27 · 381 阅读 · 0 评论 -
mybatis 根据 数据库表 自动生成 实体 并自动生成中文注释
原文地址:https://www.cnblogs.com/NieXiaoHui/p/6094144.html (将原文copy到此处,怕原作者删除,顺便记录实际操作中我遇到的问题)原文:自己手动实现的前提,对maven项目有基本的了解,在本地成功搭建了maven环境,可以参考我之前的文章:maven环境搭建项目里新建表时model,mapper以及mapper.xml基本都是用My转载 2017-12-04 09:49:08 · 3955 阅读 · 0 评论