java中利用WeakHashMap实现缓存】的更多相关文章

简介 WeakHashMap是Java集合框架里的一员,从名字可以看出它是某种 Map.它的特殊之处在于 WeakHashMap 里的entry可能会被GC自动删除,即使程序员没有调用remove()或者clear()方法. 更直观的说,当使用 WeakHashMap 时,即使没有显示的添加或删除任何元素,也可能发生如下情况: 调用两次size()方法返回不同的值: 两次调用isEmpty()方法,第一次返回false,第二次返回true: 两次调用containsKey()方法,第一次返回tr…
在JAVA中利用public static final的组合方式对常量进行标识(固定格式). 对于在构造方法中利用final进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效. 常量(这里的常量指的是实例常量:即成员变量)赋值: ①在初始化的时候通过显式声明赋值.Final int x=3: ②在构造的时候赋值. 局部变量可以随时赋值. package TomText; //利用if语句,判断某一年是否是闰年. public class TomText_28 { public st…
Java中利用随机数的猜拳游戏,实现非常简单,重难点在于随机数的产生. 首先GameJude类是用于判断输赢的一个类: package testGame; public class GameJudge { private String marks1 = "拳头"; private String marks2 = "拳头"; private int personCout = 0; private int computerCout = 0; private int co…
摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同时,又可以让我们省掉很多单纯靠分析传入的属性值来决定给实体对象设置哪些属性的值. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. JAVA…
JAVA的反射机制主要作用是用来访问对象的属性.方法等等.所以,JAVA中对象和Map相互转换可以利用JAVA的反射机制来实现.例子如下: 一.对象转Map的方法 public static Map<String, Object> javaBean2Map(Object javaBean) throws Exception { Map<String, Object> map = new HashMap<>(); Method[] methods = javaBean.g…
我们在写C#代码的时候常常会使用到string.Format("待格式化字符串{0},{1},....",参数1,参数2,...),来格式化字符串,特别是拼接字符的时候,这种方式使得代码更为直观清楚. 最近使用java时候却java的string.Format与c#重点string.Format用法不一样,java中的string.format更类似于C语言的sprintf()方法 例如: String str=null; str=String.format("Hello,%…
超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到400多M,简单的文件读取实在太慢,太占用机器资源. 特别是如果你需要5分钟就扫描一次日志文件,来统计一些即时数据.比如刚才10分钟的来访客户(大型网站用户统计系统例如51.la 会经常用到吧.)即时扫描大数据文件中的一部分显得非常之重要.本文讲述了如果使用java的RandomAccessFile方…
1. 一个简单的swing public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame(); JPanel panel = new JPanel(); JTextArea textArea = new JTextArea(); panel.setLayout(new GridLayout()); textArea.setText("test"); //当TextArea里的…
在Java中有时会用到大数据,基本数据类型的存储范围已经不能满足要求了,如要对10的1000次方的这样一个数据规模的数进行开方运算,很明显不能直接用Math.sqrt()来进行计算,因为已经溢出了. 牛顿迭代法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法.多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要.方法使用函数f(x)的泰勒…
官网下载Dom4j地址:https://dom4j.github.io/ 注意:使用Dom4j开发,需下载dom4j相应的jar文件 题目:后台利用dom4j解析student.xml文件,并返回List<Student>集合 需要解析的XML: <?xml version="1.0" encoding="UTF-8"?> <classes> <class name="ST01"> <stud…
一般实现两个变量之间的互换要用第三个变量,这样做可以,但创建新变量,增加了系统开销.如果要交换的变量时两个整数型变量,可以用更高效的方法.例如:^(异或)操作,举例如下: package chapterOne; import java.util.Scanner; public class VariableExchange { public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.o…
Redis 是一个NoSQL数据库,也是一个高性能的key-value数据库.一般我们在做Java项目的时候,通常会了加快查询效率,减少和数据库的连接次数,我们都会在代码中加入缓存功能.Redis的高效缓存功能给我们解决了难题.下面我主要讲讲在Java项目中怎么去连接Redis服务器以及需要注意的事项. 1.导入必须的Jar包        使用Java操作Redis需要两个必须的Jar包:jedis-2.5.1.jar 和  commons-pool2-2.0.jar .每个版本可以不一样,根…
1. 一个简单例子: public class Test(){ public static void main(String[] args){ JFrame frame = new JFrame(); JPanel panel = new JPanel(); JTextArea textArea = new JTextArea(); panel.setLayout(new GridLayout()); textArea.setText("test"); //当TextArea里的内容过…
背景 在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几千万条.但同时对查询速度的要求也比较高. 这个数据库之前在没有使用Presto的情况下,使用的是Hive,使用Hive进行一个简单的查询,速度可能在几分钟.当然几分钟也并不完全是跑SQL的时间,这里面包含发请求,查询数据并且返回数据的时间的总和.但是即使这样,这样的速度明显不能满足交互式的查询需求. 我们的下一个解决方案就是Presto,在使用了Presto之后,查询速度降到了秒级.但是对于一个前端查询界面的交互式查询来…
利用Scanner获取到键入的字符串与其他字符串作比较时,如果直接用关系运算符 == 比较,得到的结果总是false,因为实际比较的是两个变量引用的内存地址: 而要比较其内容是否相等,可以使用Object的equals方法. 例子: Scanner sc = new Scanner(System.in); String str1 = sc.next(); //从键盘中键入 你好 String str2 = "你好"; System.out.println(str1 == str2);…
众所周知.Java的Math.random()产生的是服从均匀分布的随机数,可是其它分布的应用也相当广泛,比如泊松分布和高斯分布(正态分布).而这些分布Java没有非常好的提供(高斯分布能够利用Random类),我们须要自己编写. 首先是泊松分布,这是一个离散型的随机变量分布.比較好弄,此外比如考察一些到达事件的概率时,通常服从泊松分布,因此该分布相当有用.在開始编写之前,先感谢知乎一位大神的科普知识.如果有一个服从均匀分布的随机变量.u~U[0,1],F(x)为随机变量x的累计分布函数,那么F…
响应头里添加禁止浏览器缓存的内容 Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0 其中,Cache-Control用于HTTP1.1(包括1.1)以上:Pragma用于HTTP1.0:Expires用于代理服务器缓存. Java(JSP)的命令 response.setHeader("Cache-Control", "no-cache, no-store, must-…
package cn.tms.ui; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.Writer; import java.net.URL; import java.net.URLConnection; import java.uti…
import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** * jav…
总结:循环对我来说重点是在哪里结束的,还有数据类型 package com.badu; import java.util.Scanner; //.输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个职工的月薪salary, //输出应交的个人所得税tax. tax = rate * (salary-850) 当 salary <= 850 时,rate = 0%; //当 850 < salary <= 1350 时,rate = 5%…
直接看代码: class ForLoop{ public static void main(String[] args){ //jump from outer loop outer:for(int i=0;i<5;i++){ for(int j=0;j<10;j++){ if(j==5) break outer; System.out.print("*"); } System.out.print("\r\n"); } } } 另外,continue也可以…
// 设置新闻内容 notice.setContent(editorValue); Matcher m = Pattern.compile("<a[^>]*>([^<]*)</a>").matcher(editorValue); while (m.find()) { String filepath = m.group(1); notice.setFilepath(filepath); }…
转: http://www.cnblogs.com/wangxiuheng/p/4449917.html http://blog.csdn.net/penjie0418/article/details/9257917 只想要一个确认按钮, It's the JOptionPane.DEFAULT_OPTION JOptionPane.showConfirmDialog(null, "MESSAGE", "TITLE", JOptionPane.DEFAULT_OPT…
1.下载POI模块:http://poi.apache.org/download.html 2.解压并导入以下包: 导入不会时会报错.…
使用 HanLP - 汉语言处理包 来处理,他能处理很多事情,如分词.调用分词器.命名实体识别.人名识别.地名识别.词性识别.篇章理解.关键词提取.简繁拼音转换.拼音转换.根据输入智能推荐.自定义分词器 使用很简单,只要引入hanlp.jar包,便可处理(新版本的hanlp安装包可以去github下载安装),下面是某位大神的操作截图:  …
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String[] args) { set(100); // 正常执行输出 set(3); // 满足方法判断条件,会中断输出操作 set(10); // 正常执行输出 } public static void set(int x) { // 方法声明为void i…
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public static void main(String[] args) { int numA = 10; // 定义int型变量 int numB = 20; // 定义int型变量 int max = 0; // 用if语句替代:int max = numA > numB ? numA : numB;…
按照前段时间在快速.冒泡等排序的评论中提到是否可以进行字符串的排序,由于最近有考试,时间比较紧,所以今天才实现此功能.此功能是针对一串字符川进行的实现,运行后的结果如下所示: 具体的程序相对较为简单,主要是在java中利用toCharArray函数将字符串转换为字符数组,根据各个字符的ASCII值大小进行比较即可,具体程序如下所示: package com.Li; import java.util.Scanner; public class StringSort { /** * @作者:曹家铭…
基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化. Java基本类型共有八种,基本类型可以分为三类: 字符类型char 布尔类型boolean 整数类型byte.short.int.long 浮点数类型float.double. Java中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变.…
java中的数据类型,可分为两类:  1.基本数据类型.也称原始数据类型.byte,short,char,int,long,float,double,boolean    他们之间的比較,应用双等号(==),比較的是他们的值.  2.复合数据类型(类)    当他们用(==)进行比較的时候.比較的是他们在内存中的存放地址,所以.除非是同一个new出来的对象,他们的比較后的结果为true.否则比較后结果为false. JAVA其中全部的类都是继承于Object这个基类的.在Object中的基类中定…