Java基础
暮念朝兮
这个作者很懒,什么都没留下…
展开
-
[Java定时任务]使用Java Timer定时将redis里面的数据存储到数据库
为了统计用户使用系统菜单的点击次数,将相应的日志信息存储到数据库中,但是一次一条的插入会导致存储速率缓慢,占用服务器及数据库资源等相关一系列的问题,所以为了避免这种情况,损耗了一定的实时性,将数据先存储至redis,每隔一定将redis里面的数据取出并存储到数据库中,这里记录一下如何在ssm项目中整合Java Timer创建定时任务并启动。1.创建定时任务对象:import java.util.TimerTask;public class RedisTask extends TimerTask{.原创 2020-09-09 10:24:24 · 2412 阅读 · 0 评论 -
[Java基础]时间处理相关类
在程序的执行过程中我们不可避免对时间的获取,转换操作,所以,了解常用的时间类还是很有必要的计算机内的时间:时间在计算机里是一维的,就如同一个直尺一般,而在计算机里,将1970年1月1日定为基准时间,每个度量单位是毫秒,一般用Long类型的变量来计量时间:Long now = System.currentTimeMillis();时间处理核心类Date:创建Date对象:Date d = new Date(); //java.util.Date;Date类的无参构造实际上是调用有参构造Da.原创 2020-05-24 18:39:14 · 221 阅读 · 0 评论 -
[Java基础]StringBuilder和StringBuffer
StringBuilder和StringBuffer的产生背景:String一经初始化后,就不会改变其内容了。对String字符串的操作实际上是对其副本(原始拷贝)的操作,原来的字符串一点都没有改变。比如:String s = “a”;创建了一个字符串;s = s+“b”;实际上原来的"a"字符串对象已经丢弃了,现在又产生了另一个字符串s+“b”(也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的时间和空间性能原创 2020-05-23 21:51:22 · 200 阅读 · 0 评论 -
[Java基础]Java对象内存分析
Java虚拟机的内存大致分为三个区域:栈stack:栈是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等),每个方法执行的相关调用都在栈里面;栈是线程私有的,不能线程共享;虚拟机会为每个线程创建一个独立的栈;栈的存储特性类似于子弹的弹夹,先进去的后出来,后进去的先出来,如方法一调用方法二,方法二调用方法三,先开辟方法一的栈帧,再开辟方法二的栈帧,最后开辟方法三的栈帧,但是执行的关闭顺序是先关闭方法三的栈帧,再关闭方法二的栈帧,最后关闭方法一的栈帧,而当整个线原创 2020-05-23 16:53:45 · 361 阅读 · 0 评论