3 bulingbuling^_^

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 27w+

读取txt文件内容,并打印到控制台

public class ReadText { public static String loadFile (String path) { try { Reader in = new FileReader(path); BufferedReader br = new BufferedReader(in); String line = null; StringBuilder sb .

2020-09-25 14:02:29

JAVA设计模式之 6.模板方法设计模式

模板方法设计模式:写好一个抽象的模板,预留空方法,给你继承,你就可以重写空的方法了。abstract class TemplateStyle { public void templateStyle() { System.out.println("开始"); long start = System.currentTimeMillis(); code(); long end = System.currentTimeMillis();

2020-09-25 11:54:58

JAVA设计模式之 5.装饰者设计模式

装饰者设计模式,对于一个抽象的类,对其添加自己想要的各种类修饰它。代码特点:一边继承,一边又关联。意味着可以重写你,又可以拿到你所有的属性。 当然就可以装饰了。abstract class Condiment extends Beverage { protected Beverage beverage;@Dataabstract class Beverage { private String description; public Beverage (Stri.

2020-09-25 10:13:24

JAVA设计模式之 4.建造者设计模式。

优点:1.创建对象的过程稳定不变(因为有ComputerBuilder接口来稳定过程)2.创建对象的过程只写了一次,没有重复代码。(指挥者完成)3.当需要扩展的时候,不用修改之前的代码。(新增xxxxxBuilder接口 即可)//建造者设计模式public class Builder { public static void main (String[] args) { AdvancedComputerBuilder acb = new AdvancedComp

2020-09-24 15:18:42

JAVA设计模式之 3.原型设计模式。

解决某些entity大量属性的重用率很高,手动设置过于繁琐且无必要的问题。先看原型设计模式之浅拷贝//原型模式public class Prototype { public static void main (String[] args) throws CloneNotSupportedException { Report report = new Report(); report.setId (1); report.setName("ma

2020-09-24 14:29:48

JAVA设计模式之 2.工厂方法模式。 分析工厂模式解决的问题。简单工厂模式的缺点然后升级到---->工厂方法模式---->抽象工厂模式

工厂模式解决的问题,看下图中的代码。我做出一个产品后,名字更改,用户必须更改,这样违反迪米特法则。我们来看简单工厂模式 如何解决这种情况。public class SimpleFactory { public static void main (String[] args){ Food food = FoodFactory.getFood(1); food.eat(); }}interface Food { void eat();}class .

2020-09-23 20:06:29

JAVA设计模式之 1.单例模式。各种单例模式的写法,推荐使用静态内部类或者枚举型写的单例模式。

饿汉式的不足是直接给你加载了对象,如果你确定会使用其加载的对象,就不会造成内存浪费,那么也是推荐使用的。如 java中 的RunTime类 就是饿汉式单例模式。静态内部类或者枚举型写的单例模式都是懒加载的,且线程安全。推荐使用。public class SingletonTest01 { public static void main (String[] args){ System.out.println( SingletonHungryStyle.getInstance())

2020-09-23 16:58:16

学习数据结构(二叉树,平衡二叉树,红黑树,B树,B+树等),排序算法(冒泡排序 插入排序 快速排序 插入排序等)必须要知道的网页。

以动图的形式让你更明白,数据的插入,查询路径。排序方法的比较过程。更多的请点击Data Structure Visualizations

2020-09-21 14:37:25

mysql中 索引数据结构用+树的原因,与hash,二叉树,红黑树的简单对比。

hash索引的优势:一次查找,精准定位。不足: 范围查询 > < ,排序 order by 。比如要找id<4,那它只能快速定位4的hash位置,1 2 3 都不能快速定位。二叉树:和插入顺序有关,极端情况会出现倾斜二叉树(顺序插入1 2 3 4 5 查找5 就要5次)。红黑树:解决了二叉树插入顺序的问题,但是又没有从根本上解决,顺序插入,严重右倾。B+Tree: 由于叶子节点上存放了所有的数据,并且有指针相连,每个叶子节点在逻辑上是相连的,所以对于范围查找比较友好。

2020-09-21 14:28:46

mybatis 用<foreach>根据ID批量更新时的一个注意点。

看接口。传入一个Long型的List。int updateReadCount(@Param(value = "topicIdList") List<Long> topicIdList);xml里面循环update.<update id="updateReadCount" parameterType="java.util.List"> update CTS set read_count = read_count + 1 w

2020-09-18 17:50:41

mysql获取排名后的名次(根据话题热度,获得话题的热度名次)

根据话题热度,获得话题的热度名次 SELECT b.ranking FROM ( SELECT a.id, a.hot, ( @ranknum := @ranknum + 1 ) AS ranking FROM ( SELECT ct.id, cts.hot FROM

2020-09-18 17:25:38

update中批量更新用in的一个小问题。

数据库字段。根据topic_id批量更新read_count,mybatis中的语句 update c set read_count = read_count + 1 where topic_id in <foreach item="topicId" index="index" collection="topicIdList" open="(" close=")" separator=","> #{.

2020-09-17 12:15:38

判断List中是否有重复的元素。

list的初始值 uid都为1,AccountData2单独设置了NickName("aaa"); List<AccountData> AccountDataList = new ArrayList<>(); AccountData AccountData = new AccountData(); AccountData AccountData2 = new AccountData(); AccountData.setUid..

2020-09-17 10:54:45

Mybatis 加载 映射器(mappers)配置的四种方式,以及优先级。

你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:/// 形式的 URL),或类名和包名。1.使用相对于类路径的资源引用 resource<!-- 使用相对于类路径的资源引用 --><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/.

2020-09-07 10:23:04

redis单线程为什么执行速度这么快的原因。

(一)纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快;(二)单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;(三)多样的数据结构(四)采用了异步非阻塞I/O多路复用机制I/O操作的阻塞:当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等.

2020-09-05 13:24:35

PriorityQueue 略解

PriorityQueue 一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,可自定义排序方法。该队列不允许使用 null 元素也不允许插入不可比较的对象。(没有实现Comparable接口的对象)。package com.example.demo;import com.example.demo.pojo.User;import java.util.Comparator;import java.util.Pri.

2020-09-04 16:03:35

Mybatis choose when, otherwise 标签

choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。 <select id="isUserLiked" resultType="java.lang.Integer"> select count(1) from community_likes <where&gt

2020-09-03 15:41:26

mongodb 的分片策略优劣 略解

1.使用hash分片。分布比较均匀,不会出现某一个片,某一个片比其他片数据大量高于的情况。2.范围分片。根据一写特殊项目需要,如年龄段,查询时,用hash分片,会散列在各个片里面,如果是分片时,按照年龄段分片,查询要求也在该年龄段内,就不回取搜索所有的片,再整合一个结果给你, 只会取响应的片读取,节约了响应时间,减小服务器压力。3.自定义分片。同2.根据业务不同,可节约查询时间,减小服务器压力。...

2020-09-02 14:40:29

Java中将List集合对象转换成json字符串的两种方法

1.使用Gson类中的toJson()方法 Gson gson = new Gson(); String listToJsonString = gson.toJson(list);2.使用JSONArray json=JSONArray.fromobject(list);在调用json.toString()方法转换成字符串JSONArray jsa = JSONArray.fromObject(list);String result = jsa.toString();...

2020-09-02 11:17:24

mongoDB主节点选举规则

arbiter仲裁者的priority为0。

2020-09-01 19:56:43

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。