Java编程精华
文章平均质量分 69
介绍javaSe,javaWeb,javaEE,lunix,操作系统,编译原理等
-Hello_狂奔的蜗牛
Fly!!!
展开
-
页面置换算法LRU + LFU
页面置换算法操作系统中进程在运行的时候发现空闲时间不够的时候,就需要从内存中调出页面,淘汰掉相应规则的(比如旧的LRU,比如用的少的)页面来容纳新的页面。LRU 最近最久未使用页面置换算法Last Least Used,英文翻译,就是最近最少使用,通俗点说就是淘汰掉最旧的;每次使用过的页面都要更新为最新的。代码实现我在代码里给了注释,方法大家食用class LRUCache { // 表示当前这个页面的key,已经当前这个页面的对象信息Node private HashMap<I原创 2021-08-09 16:30:18 · 368 阅读 · 0 评论 -
用Java语言实现单例模式
用Java语言实现单例模式单例模式饿汉式懒汉式线程不安全,不可用加锁,但是效率低双重校验锁枚举单例模式的实现单例模式单例模式 :保证一个类只能有一个实例,而且自行实例化并向整个系统提供这个实力,避免频繁创建对象,节约内存。一般分为饿汉式和懒汉式什么是饿汉式?懒汉式?饿汉式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。懒汉式:在类加载时不初始化,等到第一次被使用时才初始化。饿汉式会出现空间资源浪费的问题,不建议使用;饿汉式下面给出饿汉式的Java的写法这种是比较常见的写原创 2021-06-21 11:05:17 · 758 阅读 · 1 评论 -
Java中的关键字
Java中有50个关键字,注意是50个,不是53个!注意:Java官方文档注明了,true, false, and null只是看起来像关键字,但是实际上只是文字。参见官方api:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html...原创 2021-03-01 23:34:18 · 341 阅读 · 0 评论 -
设计模式之观察者模式
参考《大话设计模式》 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够更新自己。 有以下两个关系: 通知者->“前台”通知者,来通知观察者 观察者-> 具体实现类,可以是员工<->老板关系中的员工,可以是学生<->老师关系中的学生,而老师或者通知学生的班干部就是通知者。 观察者模式结构图 *Sub原创 2017-04-25 16:47:05 · 229 阅读 · 0 评论 -
设计模式之抽象工厂模式
定义抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 ..结构图代码框架//抽象类A或者接口Apublic abstract class AbstractProductA {}//抽象类B或者接口Bpublic abstract class AbstractProductB {}//A和B的一系列产品publ原创 2017-04-27 12:18:53 · 235 阅读 · 0 评论 -
设计模式之备忘录模式
备忘录模式的结构图基本代码//发起人类public class Originator { private String state; public void setState(String state) { this.state = state; } public String getState() { return t原创 2017-04-29 17:39:37 · 190 阅读 · 0 评论 -
设计模式之访问者模式
访问者模式的结构基本代码import java.util.ArrayList;import java.util.List;public abstract class Visitor{ public abstract void visitConcreteElementA(ConcreteElementA concreteElementA); public abstract void原创 2017-04-30 10:23:57 · 184 阅读 · 0 评论 -
JAVA中管道Piped输入输出流
import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;/*管道流要用到线程的知识 * * / */class write implements Runnable{ private PipedOutputStream out = null; p原创 2016-12-05 16:56:44 · 878 阅读 · 0 评论 -
Java 操作符
移位操作符的对象是二进制的“位”,移位操作符只可以用来处理整数类型。“<<”左移操作符能按照操作符右侧指定的位数将操作符左边的操作数向左移动,在低位补0. “>>”操作符则按照操作符右侧指定的位数将操作数左边的操作数向右移动。所谓的“有符号”:有符号数是针对二进制来讲的。 用最高位作为符号位,“0”代表“+”,“1”代表“-”;其余数位用作数值位,代表数值。 有符号数的表示:计算机中的数据用二原创 2017-03-26 20:46:29 · 429 阅读 · 0 评论 -
Java final关键字
1. 对基本类型运用final时: 它使数值恒定不变,这和C++中const 关键字一样; 2. 对于对象时:C++中const 必须在方法中也申明const; Java中,在thinking in Java中说:final使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。然而,对象其自身是可以修改的,Java并未提供使任何对象恒定不变的途径。public cl原创 2017-04-03 17:17:29 · 295 阅读 · 0 评论 -
Comparable与Comparator的区别
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包Java.util下,而Comparable位于包 ja原创 2017-07-30 19:24:00 · 223 阅读 · 0 评论 -
求高精度幂,Java BigDecimal 去前导零和后导零
Java高精度确实A题利器,但是也需要掌握一定的技巧,尤其控制精度方面,由于大浮点数精度太高就默认用科学计数法表示,这里我们可以略施小计让其不用科学计数法表示并且去掉前导“0.”stripTrailingZeros() :用于去除末尾多余的0toPlainString(): 控制不使用科学计数法输出去掉前导“0.”就相对简单多了,只需要先将高精度浮点数转原创 2017-10-24 15:13:15 · 1033 阅读 · 0 评论 -
String与StringBuilder,StringBuffer的区别
1.用于字符串操作,String属于不可变类,而StringBuilder属于可变类.2.StringBuilder与StringBuffer类似,都是字符串缓冲区,StringBuilder不是线程安全的,总的来说线程安全从高到低:StringBuffer>StringBuilder>String.3.执行效率方面,StringBuilder>StringBuffer>S...原创 2018-04-22 21:17:29 · 242 阅读 · 0 评论