自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

haoranhaoshi的博客

了解更多:http://www.haoranhaoshi.top/。生活的最佳状态是冷冷清清的风风火火。

  • 博客(36)
  • 资源 (34)
  • 收藏
  • 关注

原创 ThinkStation P710 换显卡

ThinkStation P710换了个显卡,记录一下:ThinkStation主机无需螺丝刀开盖。侧面有开盖孔:钥匙在主机上:插入后拉起开关,盖可以滑开,即可开盖,拿下来也可以,没有其他螺丝。将一侧压着显卡的部件向上提然后扭到另一侧,显卡和主机连着的地方有两个螺丝,可以拧下来,利于拔出显卡:显卡有个尾扣,在薄的不与主机接触的那一侧底部,按着就可以向上提起显卡:装显卡的时候按着尾扣,将显卡插入槽中即可。通电测试一下,如果屏幕提示Please Pow..

2020-09-19 14:54:36 1681

原创 html建立顶部固定部分

建立顶部固定部分:<!DOCTYPE html><html lang="en"><head> <title>置顶</title> <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"/> <style> body { margin:

2020-09-18 16:06:33 1466

原创 Java 集合扩容、哈希、HashMap、ConcurrentHashMap、红黑树

Vector、HashTable线程安全ArrayList、HashMap线程不安全1.StringBuffer和StringBuilder初始化默认大小为16个字符2.HashMap初始大小默认16,加载因子为0.75,自增为2n3.HashTable初始大小默认11,加载因子为0.75,自增为2n+14.ArrayList初始大小默认10,自增为1.5n5.Vector初始大小默认10,自增为2n解决哈希冲突的方法:开放定址法、再散列函数法(再哈希法)、链地址法(拉链法)。.

2020-09-15 15:40:49 132

原创 Java十三规范简单总结

1、JDBC(java Database Connectivity,Java数据库连接):负责数据库访问。2、JNDI(Java Name and Directory Interface, Java名称与目录接口):根据名称和文件目录获取数据,如数据库连接时配置数据源,根据数据源名称,在配置文件中查找连接数据。3、EJB(Enterprise Java Bean,企业级Java Bean):将业务逻辑从客户端软件中抽取出来,封装组件中,运行在一个独立的服务器上。客户端软件通过网络调用组件提.

2020-09-15 14:16:10 175

原创 CPU结构、高速缓存、总线锁、缓存锁、缓存一致性协议、StoreBuffer、指令重排序、内存屏障

CPU结构任务管理器CPU部分右下中会展示高速缓存(L1、L2、L3):总线锁总线层面解决数据一致性问题。缓存锁解决高速缓存中数据一致性问题(简称:缓存一致性问题)。避免多核CPU的线程中,复制的主内存数据不能及时同步。一个CPU内核的高速缓存中的数据更新,会让其他CPU内存的高速缓存中相同数据的缓存失效。然后此CPU内核的高速缓存中的数据同步到主内存,其他CPU内核的高速缓存中相同数据从主内存重新复制。缓存一致性协议:MSI、MESI、MOSI...MES...

2020-09-14 08:53:25 2321 3

原创 课程学习后对教学方式优化的见解

学习了一些课程,充实自己,对前辈的教学方式有些异议,总结一些自己的想法:(1)广度遍历式教学,而非深度遍历式教学。先将知识在当前层面连接,然后再总体向下一层。(2)知识体系化,总结概念化,然后对关联知识点讲解,而非零碎地通过关键词部分一致进行分类,然后关联性讲解。...

2020-09-12 19:33:19 129 1

原创 Java volatile 示例及扩展

public class VolatileTest { private static boolean stop = false; public static void main(String[] args) { Thread thread = new Thread(() -> { System.out.println("start"); long i = 0; System.out.pr...

2020-09-12 17:18:20 112

原创 MindMaster思维导图拖动(移动)和上下、左右滚动

MindMaster思维导图拖动(移动)有两种方式:第一种是点击思维导图中心主题后按住鼠标左键拖动,如果中心主题不在视口范围内就无法拖动了,不推荐。第二种是按住鼠标右键直接拖拽,是博主推荐的操作方式。至于滚动:鼠标直接滚动是上下滚动,按住Alt再鼠标滚动是左右滚动。百度的时候没有这个答案,这里记录一下。...

2020-09-12 07:48:10 10699 1

原创 消费者、生产者、消息队列 实践一

消费者:public class Consumer implements Runnable { private Queue<String> messageQueue; public Consumer(Queue<String> messageQueue) { this.messageQueue = messageQueue; } @Override public void run() { while (

2020-09-11 17:17:09 201

原创 Java 锁分离 分段锁

例1:java.util.concurrent.LinkedBlockingQueue将队列头取出数据和队尾插入数据分离成两个锁,而不是取出数据和插入数据抢占同一个锁。锁分离可以提升性能。private final ReentrantLock takeLock = new ReentrantLock();private final ReentrantLock putLock = new ReentrantLock();例2:java.util.concurrent.ConcurrentH

2020-09-11 16:00:00 588

转载 Java 偏向锁的升级

jvm源码(biasedLocking.cpp)解析的偏向锁升级流程(忽略一些细节)。示例中:线程1当前拥有偏向锁对象,线程2是需要竞争到偏向锁。线程2来竞争锁对象; 判断当前对象头是否是偏向锁; 判断拥有偏向锁的线程1是否还存在; 线程1不存在,直接设置偏向锁标识为0(线程1执行完毕后,不会主动去释放偏向锁); 使用cas替换偏向锁线程ID为线程2,锁不升级,仍为偏向锁; 线程1仍然存在,暂停线程1; 设置锁标志位为00(变为轻量级锁),偏向锁为0; 从线程1的空闲monitor..

2020-09-11 11:14:46 331

转载 JDK、JRE、JVM的关系

JDK、JRE、JVM的关系:JDK包括JRE,JRE包括JVM。参考:https://www.cnblogs.com/java-lzx/p/11641610.html、https://www.cnblogs.com/gkmeteor/p/11749175.html

2020-09-11 10:34:31 71

原创 Java Object的wait()、notify、notifyAll()

wait()、notify、notifyAll()必须在同步代码块中,而且是对象锁,对象锁的对象是wait()、notify、notifyAll()的对象。否则报java.lang.IllegalMonitorStateException。wait()会释放锁,阻塞当前线程,当前线程进入等待队列。notify会唤醒等待队列中的一个线程,进入同步队列。唤醒哪一个线程由操作系统的多线程管理决定。notifyAll()会唤醒等待队列中所有线程,进入同步队列。同步队列中的线程进行非公平竞争获得锁。公

2020-09-11 09:59:40 242

原创 待整理知识点记录

Spring:https://www.jianshu.com/p/da6c7af9a31aJVM:https://www.jianshu.com/p/49e76079243dJava:https://www.jianshu.com/p/ba07aafda9a9Spring事务传播特性:https://www.jianshu.com/p/e8d3131ece67

2020-09-10 19:21:02 81

转载 HotSpot虚拟机中的垃圾收集器

7种垃圾收集器: 新生代收集器:Serial、ParNew、Parallel Scavenge;老生代收集器:Serial Old、Parallel Old、CMS;整堆收集器:G1;参考:https://blog.csdn.net/qq_41723615/article/details/104380000待续......

2020-09-10 19:19:29 80

转载 JVM自己的线程

线程 说明 Attach Listener Attach Listener线程是负责接收到外部的命令,而对该命令进行执行的并且吧结果返回给发送者。通常我们会用一些命令去要求jvm给我们一些反馈信息,如:java -version、jmap、jstack等等。如果该线程在jvm启动的时候没有初始化,那么,则会在用户第一次执行jvm命令时,得到启动。 Signal Dispatcher 前面我们提到第一个Attach Listener线程的职责是接收...

2020-09-10 16:15:12 231

原创 Java 锁升级(锁膨胀)、锁降级

锁升级:偏向锁、轻量级锁、重量级锁的过渡。https://blog.csdn.net/haoranhaoshi/article/details/92388612优先尝试低级锁,不能适用,就升级锁。线程获取到不被其他线程获取的监视类或对象,监视类或对象头部记录线程ID,线程退出对监视类或对象的获取时直接退出,是偏向锁。如果有其他线程来获取监视类或对象,发现头部记录的线程ID不是自己的ID(https://blog.csdn.net/haoranhaoshi/article/details/10850.

2020-09-10 11:22:13 2279

原创 Java 锁粗化、锁消除

锁粗化:JIT编译时扩大锁定区域,避免对同一个类或对象频繁加锁、释放锁。例1:public void doMethod(){ synchronized(lock){ //do 1 } synchronized(lock){ //do 2 } synchronized(lock){ //do 3 }}public void doMethod(){ synchronized(lock){

2020-09-10 10:34:25 118

转载 Java CAS

CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。这样说或许有些抽象,我们来看一个例子:1.在内存地址V当中,存储着值为10的变量。image2.此时线程1想要把变量的值增加1。对线程1来说,旧的预期值A=10,要修改的新值B=11。image3.在线程1要

2020-09-10 09:19:10 433

转载 Java 对象头、监视器、synchronized

对象头HotSpot虚拟机的对象头包括两部分信息:MarkWord 第一部分MarkWord,用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据的长度在32位和64位的虚拟机(未开启压缩指针)中分别为32bit和64bit,官方称它为“MarkWord”。 Class类型指针 对象头的另外一部分是Class类型指针,即对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪个类的实例. ...

2020-09-10 06:16:18 656

转载 JDBC和ODBC

JDBC(Java Data Base Connectivity,Java数据库连接):面向Java的数据库连接方式。提供执行数据库操作的Java API。ODBC(Open Data Base Connectivity,开放数据库连接):微软的面向C/C++/C#的数据库连接方式。需结合ADO(ActiveX Data Objects,一种表示数据库中数据结构和数据的对象)执行数据库操作。...

2020-09-09 19:52:27 158

转载 IDEA 单独编译类

有时对单个类进行了改动,jar包中只想替换一个class文件。可以选择单独编译一个类:IDEA中导航目录中类右键点击Recompile'类名.java',或者选中类使用快捷键Ctrl+Shift+F9进行重新编译,新生成的class文件会覆盖class输出目录下原来的class文件。...

2020-09-09 16:18:31 11519

原创 IDEA中查看类的字节码

在IDEA的class输出路径中,找到想查看的类,右键Open in Terminal,然后在命令窗口中输入javap -v 类名.class,即可查看这个类的字节码。解析:  1、版本号 major version: 49 //java版本 jdk1.6显示的是50, jdk1.5显示的是49,jdk1.4显示的是58 , 高版本能执行低版本的class文件  2、常量池Constant pool  Method:方法  Field:字段  String:字符串  Asciz:

2020-09-09 09:33:52 400 1

原创 事务ACID特性;脏读、不可重复读、幻读;读未提交、读已提交、可重复读、串行化

事务具有4个特征,分别是原子性、一致性、隔离性和持久性,简称事务的ACID特性;一、原子性(atomicity)一个事务要么全部提交成功,要么全部失败回滚,不能只执行其中的一部分操作,这就是事务的原子性二、一致性(consistency)事务的执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处于一致性状态。如果数据库系统在运行过程中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据库所作的修改有一部分已写入物理数据库,这是数据库就处于一种不正确

2020-09-09 08:48:50 965

原创 Java和操作系统层面的线程状态、造成状态的方法、监视器锁、BLOCKED和WAITING对比

Java层面线程状态、造成状态的方法:public enum State { /** * Thread state for a thread which has not yet started. (创建线程) */ NEW, // 新建 /** * Thread state for a runnable thread. A thread in the runnable * sta

2020-09-08 13:20:58 285

原创 Mysql的MyISAM、Innodb、表锁、页锁、行锁、锁升级、MyISAM锁调度、启动选项(启动参数)和系统变量、状态变量

MyISAM存储引擎、Innodb存储引擎对比:(1)MyISAM自增ID在文件中,Innodb在内存中;(2)MyISAM不支持事务,Innodb支持事务;(3)MyISAM支持表锁,InnoDB 支持表锁和行锁,默认为行锁。表锁:开销小,加锁快;锁定粒度大,锁冲突概率高,并发度低。行锁与之相反,页锁介于表锁和行锁之间。页锁:多条记录共同加锁。粒度:颗粒大小。表锁不会死锁,行锁和页锁可能死锁。BDB存储引擎支持表锁和页锁。表级锁分读锁和写锁。加读锁时,阻塞写请求。加写锁时,阻

2020-09-07 15:33:17 149

转载 netty、undertow、webLogic、webSphere、tomcat、jetty、jboss apache、vert.x内置容器

apache:只支持静态网页。tomcat:不支持EJB。Servlet容器。jetty:以Tomcat内核为基础进行了审核和调优。netty:非Servlet容器。Spring WebFlux默认netty作Web容器。支持高并发,能抵抗DOS攻击。C写的。jboss:EJB容器,不支持Servlet。webLogic:BEA基于j2ee架构的商业中间件。webSphere:IBM商业集成软件平台。undertow:红帽的Java开发的轻量级web容器。

2020-09-05 09:43:21 740

原创 MYSQL类型

MyISAM存储引擎、Innodb存储引擎对比:(1)MyISAM自增ID在文件中,Innodb在内存中;(2)MyISAM不支持事务,Innodb支持事务;(3)MyISAM支持表锁,InnoDB 支持表锁和行锁,默认为行锁。表锁:开销小,加锁快;锁定粒度大,锁冲突概率高,并发度低。行锁与之相反,页锁介于表锁和行锁之间。页锁:多条记录共同加锁。粒度:颗粒大小。表锁不会死锁,行锁和页锁可能死锁。BDB存储引擎支持表锁和页锁。表级锁分读锁和写锁。加读锁时,阻塞写请求。加写锁时,阻

2020-09-04 13:51:46 120

转载 ORM

ORM(Object Relational Mapping,对象关系映射)Hibernate 入门简单,性能低JPAMybatis 入门适中,轻量级。Mybatis是Hibernate的简化,是Ibatis的升级。IbatisSpringJDBC 入门难,性能高ORM框架隐藏SQL,使面向SQL编程到面向对象编程。...

2020-09-03 14:54:47 84

转载 Java 对象访问方式

一、句柄(对象的唯一标识)访问方式:使用句柄访问对象,会在堆中开辟一块内存作为句柄池,句柄中储存了对象实例数据(属性值结构体)的内存地址,访问类型数据的内存地址(类信息,方法类型信息),对象实例数据一般也在heap中开辟,类型数据一般储存在方法区中。使用句柄访问的好处是句柄中储存的是稳定的对象地址,当对象被移动时候,只需要更新句柄中的对象实例部分的值即可,句柄本身不用被移动修改。二、直接指针访问方式:直接指针访问方式指reference中直接储存对象在heap中的内存地址,但对应的类型数据访问

2020-09-03 14:51:06 476

转载 @Nonnull、@Nullable、空对象模式

package org.springframework.lang;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import javax.annota.

2020-09-03 13:43:37 1059

转载 函数式编程

函数式编程与面向对象编程(Object-oriented programming)和过程式编程(Procedural programming)并列的编程范式。最主要的特征是,函数是第一等公民。强调将计算过程分解成可复用的函数,典型例子就是map方法和reduce方法组合而成 MapReduce 算法。只有纯的、没有副作用的函数,才是合格的函数。面向对象的世界里我们是把事物抽象成类和对象,然后通过封装、继承和多态来演示他们之间的关系。函数式的世界里把世界抽象成事物和事物之间的关系,用这种方式实现世

2020-09-03 08:29:20 93

转载 响应式编程(反应式编程)

响应式编程(reactive programming)是一种基于数据流(data stream)和变化传递(propagation of change)的声明式(declarative)的编程范式。响应式编程会声明数据变化对应的操作逻辑(声明式),会监听数据变化(数据流);数据变化后,会执行对应的操作逻辑(变化传递)。编程范式是编程的普适性模式。响应式编程也称反应式编程。响应式编程是观察者模式的实践。RxJava、Reactor是响应式编程框架。GUI的Listener,JavaFX

2020-09-02 15:50:51 1162

转载 JCP、JSR、JSR 250

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。JSR 250是Java规范请求以发展为目标注解(即,关于不属于程序本身的软件程序的信息)JavaSE和JavaEE适用于各种不同技术的平台。据设想,各种JSR将使用注释来启用陈述式编程风格。在JavaEE组件JS

2020-09-02 09:57:59 166

原创 JVM GC所有关键知识点

堆:分年轻代(新生代,Young Generation)、年老代(老生代,Old Generation)、永久代(持久代,Permanent Generation)。永久代是方法区规范的实践。JDK1.8将永久代改为了元空间(MetaSpace)。永久代在JVM中,元空间在本地内存中。新生代分Eden、From、To区,默认大小比例8:1:1。From、To区又称为Survivor区。YGC(Young GC,新生代GC)(Minor GC)触发条件:Eden区空间不足。FGC(Full GC)

2020-09-01 14:42:04 172

转载 JVM模式、JIT编译

JVM模式:Client:启动快,启动后性能不如Server,适合桌面应用。Server:启动慢,启动后性能高,适合服务器后台。热点代码:被多次调用的方法被多次执行的循环体热点探测:基于采样基于计数器计数器的种类:方法调用计数器(默认阈值在Client模式下是 1500 次,在Server模式下是 10000 次)回边计数器两个计数器的协作Java代码(源代码)、字节码/中间码、机器码/本地代码/机器指令JIT(Just In Time)编译器/即时编译器:将热点代码

2020-09-01 14:38:57 125

bandilplszcb.zip(班迪录屏)

班迪录屏,时长不限,功能丰富,可录入声音。可参考:https://blog.csdn.net/haoranhaoshi/article/details/106943758

2020-06-24

ShpAnalysis.zip(包含Java方式解析shp文件的IDEA工程和ShapeExplorer.exe)

包含Java方式解析shp文件的IDEA工程和ShapeExplorer.exe。arcmap工具(2G)过大,ShapeExplorer能打开shp文件,但有时获取信息出差,Java方式解析shp文件提供了另一种解决方式,之间运行即可,但解析也有一定局限性。ShapeExplorer和提供的工程推荐共同使用,失败时推荐arcmap。

2020-06-18

Thoughtworks 技术雷达 2019.11版

本期主题 云:多即是少? 为取得竞争优势,云服务提供商会将新服务快速推向市场。在早期采用时,请小心瑕疵以及因此引起的摩擦。 保护软件供应链 在我们朝着治理即代码的方向发展过程中,现代交付流水线方式在保护着软件制品创建的方方面面。 打开机器学习的黑匣子 和机器学习(ML)的强大能力相对应的,是它的不可预测性。所以在选择模型时,可解释性以及能用于解释模型输出的工具,变得越来越重要。 软件开发是一项团队运动 创新的蓬勃发展,得益于将不同的专业人才放到协作和跨功能的“10倍团队”当中。

2019-12-31

VertxTcpSocket.zip

Java TCP实验:Vert.x服务端 + Socket客户端 Socket客户端可实现Vert.x TCP客户端没有的同步阻塞。 注意,不能放在executeBlocking中,会使服务端给客户端发送失败

2019-07-25

《Java多线程编程核心技术》高洪岩 著 全书工程代码

《Java多线程编程核心技术》高洪岩 著 全书的完整工程代码,eclipse工程

2019-07-16

浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)实战工程

浅拷贝(浅复制、浅克隆)、深拷贝(深复制、深克隆)实战工程,IDEA搭建

2019-07-16

dubbo-admin-2.5.10.war

最新版的dubbo-admin,2.5的最后一版,此版之后的dubbo里就没有dubbo-admin模块了。此war从GIthub的dubbo正式工程中下载并打包,亲测有效。访问http://localhost:8080/dubbo-admin-2.5.10/时,root用户名的密码为root,guest用户名的密码为guest,可以在dubbo-admin-2.5.10\WEB-INF\dubbo.properties里可修改。如果怕Tomcat的8080端口被干扰,可以在tomcat的conf\server.xml里将<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />的8080改了。

2019-07-10

zookeeper-3.4.14.zip

最新可用的zookeeper,解压即可,免安装,conf下的zoo.cfg已经将基础必须的内容配置好(包括快照文件和日志文件位置),直接运行zkServer和zkClient可测试。Windows使用cmd后缀的,Linux使用sh后缀的。如果以管理员身份运行,cmd命令行中jps可查看进程(前提是安装配置了JDK)。

2019-07-10

Java RPC和RMI代码实战

Java RPC和RMI代码实战,有关键注释,为最简案例。Maven搭建,JDK8编译。 RPC体验:依次运行RpcProvider和RpcConsumer类。 RMI体验:RMITest中依次运行testServer和testClient方法。

2019-07-02

log4j使用实战

log4j.rootLogger=INFO,CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender INFO是日志记录的最低等级,必须写,它和比它高的等级会进入日志,如WARN、ERROR、FATAL、OFF。 关于8个日志等级,参考:https://blog.csdn.net/haoranhaoshi/article/details/89929470下半部分。 CONSOLE是appenderName,随便写,只要一致即可,换成A也行。 log4j推荐和slf4j一起用,关于log4j和slf4j, 参考:https://blog.csdn.net/haoranhaoshi/article/details/89929470上半部分。 log4j.appender.File.File=${user.dir}/logs/hmiservice.log ${user.dir}可以得到当前程序目录,关于${}里面可以使用的内容, 参考:https://blog.csdn.net/haoranhaoshi/article/details/93532273 写绝对路径也可以,但不推荐:log4j.appender.A.File=E:/Program/log/logs/info.log DailyRollingFileAppender支持按每月、周、日、时、分创建日志文件。 当前日志放在log4j.appender.File.File=${user.dir}/logs/hmiservice.log对应的命名文件中, 过了时间将原日志文件命名为原文件名后加上log4j.appender.File.DatePattern='.'yyyy-MM-dd-HH对应格式的日期, 注意不能用:和_。 关于DailyRollingFileAppender的使用,参考:https://www.cnblogs.com/zengdingxin/p/5135008.html log4j.appender.File=MyDailyRollingFileAppender MyDailyRollingFileAppender是自定义的类,需写包括包名的全路径,如果就在src-main-java下,写类名就行。 此类可以使log4j.appender.File.maxBackupIndex=12有效,DailyRollingFileAppender本身不支持创建日志文件的上限, 即不会清理过期日志文件。 log4j.appender.File.layout.ConversionPattern=%d{yyy MMM dd HH:mm:ss,SSS} %p %m%n 更多输出控制格式,参考:https://blog.csdn.net/reserved_person/article/details/52849505上半部分 log4j.appender.File.layout=org.apache.log4j.HTMLLayout 网页形式的日志文件,参考:https://blog.csdn.net/jQuerys/article/details/49909931 日志研发的方向: 日志内容 日志格式 多长时间、多大日志生成一个文件 多长时间、多大日志生成一个文件夹 多长时间、多大日志删除一个文件 多长时间、多大日志删除一个文件夹 日志等级是否分开存储 不同服务的日志是否分开存储 存储方式:后台打印、文件、数据库、邮件等,参考:https://blog.csdn.net/reserved_person/article/details/52849505下半部分 推荐的依赖组合: <dependency> <groupId>apache-log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>slf4j</groupId> <artifactId>api</artifactId> <version>1.6.6</version> </dependency> <dependency> <groupId>slf4j</groupId> <artifactId>log4j12</artifactId> <version>1.7.5</version> </dependency> 如果使用的是阿里的Maven仓库,最新的日志依赖可能没有,可以把这些依赖从官网下载后安装到本地。 本实战示例中在libs下有这些依赖。 执行以下命令,注意把Jar包路径改一下: mvn install:install-file -Dfile=C:\Users\hao\Desktop\log4j-1.2.17.jar -DgroupId=apache-log4j -DartifactId=log4j -Dversion=1.2.17 -Dpackaging=jar mvn install:install-file -Dfile=C:\Users\hao\Desktop\slf4j-api-1.6.6.jar -DgroupId=slf4j -DartifactId=api -Dversion=1.6.6 -Dpackaging=jar mvn install:install-file -Dfile=C:\Users\hao\Desktop\slf4j-log4j12-1.7.5.jar -DgroupId=slf4j -DartifactId=log4j12 -Dversion=1.7.5 -Dpackaging=jar

2019-06-25

百度语音Android实践:百度语音识别和语音合成、个人兴趣项目:亚丝娜人工智能AIMaid(仅供参考语音交流技术,请勿商用)

百度语音Android实践:百度语音识别和语音合成、个人兴趣项目:亚丝娜人工智能AIMaid(仅供参考语音交流技术,请勿商用) 参见:https://blog.csdn.net/haoranhaoshi/article/details/80979236

2019-05-19

ThoughtWorks技术雷达—2019年4月发布的最新版

ThoughtWorks的技术雷达中文版。2019年4月发布的最新版。从技术、工具、平台、语言&框架四个角度,讲述最新的互联网发展成果。结合当今互联网行业的发展态势推荐关注度。每年两次发布。建议每年阅读,跟踪前沿热点,扩大视野。你我都是ThoughtWorker。

2019-05-17

Maven简单使用

结合https://blog.csdn.net/haoranhaoshi/article/details/89841323,对Maven安装、原型、仓库、依赖管理、在IDEA中的使用有一个全面了解

2019-05-06

Vert.x的Http和TCP实战

Vert.x系列: Vert.x介绍:https://blog.csdn.net/haoranhaoshi/article/details/89279096 Vert.x实战一:Vert.x通过Http发布数据:https://blog.csdn.net/haoranhaoshi/article/details/89284847 Vert.x实战二:TCP通信:https://blog.csdn.net/haoranhaoshi/article/details/89296522 Vert.x实战三:TCP客户端之间以角色通过服务端转接通信:https://mp.csdn.net/postedit/89296606 Vert.x实战四:TCP客户端之间以角色和同一角色连接顺序通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296665 Vert.x实战五:TCP客户端之间以ID通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296754 Vert.x实战六:TCP客户端之间以功能名通过服务端转接通信:https://blog.csdn.net/haoranhaoshi/article/details/89296841 Vert.x实战七:TCP设置超时断开:https://blog.csdn.net/haoranhaoshi/article/details/89296986 Vert.x的TCP服务端和客户端配置:https://blog.csdn.net/haoranhaoshi/article/details/89297022 --------------------- 作者:风铃峰顶 来源:CSDN 原文:https://blog.csdn.net/haoranhaoshi/article/details/89296606 版权声明:本文为博主原创文章,转载请附上博文链接!

2019-04-14

Mina框架实战(由浅入深,稳扎稳打)

Mina介绍:https://blog.csdn.net/haoranhaoshi/article/details/89102597 工程内容介绍(由浅入深,稳扎稳打): test1:建立Server和Client。有Client加入,Server广播给所有Client。 test2:在控制台中Server可以给所有Client发送数据,Client可以给Sever和其他Client发送数据。 test3:(1)特定角色的Client处理消息。 (2)特定角色的Client收到消息。 Client与Server建立Session后,Server存储Client的Role和Session映射(同一个角色可映射多个Session)。角色Role在MinaClientHandler中。修改Role,启动多个Client测试。Client在控制台中Role:Message的格式给对应Role的Client发送Message。 test4:(1)Client启动时如果没有Server,就先建立Server。在test3(2)基础上修改MinaClient的session = future.getSession();即可。 (2)如果建立Server的Client离开了,让另一个Client建立Server。 (3)Client给Server发送数据,如果失败,重新发送。 test5:一个Client有一个Server。Client和其他Client的Server建立Session。 test6:如果Client连接Server失败,就只建立Server,如果Server离开,第一个检测到的Client建立Server。 一个进程中包括Server和Client,进程A和B通信,Server负责接收另一个进程的消息,Client负责发送给另一个进程消息,无需Server独立启动,或者绑定在一个进程中,保证最后离线,或者绑定在一个进程中,进程离线后绑定在其他进程中。把Client中的OWN_SERVER_PORT和ANOTHER_SERVER_PORT调换后启动另一个进程,即可测试。 test7:解决相同角色,分工不同: (1)连接建立时传角色,同一个角色,多个Client,连接时间区分Client (2)连接建立时传角色和功能ID,功能ID配置到启动参数,发消息时消息头传角色和消息ID (3)细化角色。 (4)Client发送功能ID,根据功能ID、Client_ID映射文件得到Client_ID,Client_ID配置到启动参数。 (5)连接失去时,更新角色和Session的Map。 test3.type1对应test3(1) test3.type2对应test3(2) 待做: Server不能通过控制台广播到每一个Client,ioSession.write(scanner.next());之后的代码行,会等下一次控制台输入,Enter按下后执行。 test4(2)(3)、test6、test7 已经转去Vert.x了

2019-04-09

机器学习实战之决策树全面总结

1、tree.py:决策树代码 2、treePlotter.py:在matplot中生成树形图的代码 3、classifierStorage.txt:生成树的测试数据 4、lenses.txt:决策树预测隐形眼镜类型所用的样本,每行前四个为特征:['age', 'prescript', 'astigmatic', 'tearRate'],最后一个为分类。分类包括硬材质、软材质以及不适合佩戴隐形眼镜。 5、matplotlib产生的树形图: (1)测试的树形图 (2)隐形眼镜类型决策的树形图

2019-03-27

机器学习实战之kNN

1、使用 k-近邻算法改进约会网站的配对效果: (1)样本数据: datingTestSet.txt 示例(三个特征及对应的分类): 40920 8.326976 0.953952 largeDoses 3种特征:  每年获得的飞行常客里程数  玩视频游戏所耗时间百分比  每周消费的冰淇淋公升数 分类:  不喜欢的人  魅力一般的人  极具魅力的人 (2)datingTestSet2.txt已进行归一化数值、类型数字化 (3)matplotlib产生的散点图(kNN.py): 1:对应第2列(x轴),第3列数据(y轴),类型无色差 2:对应第2列(x轴),第3列数据(y轴),类型有色差 3:对应第1列(x轴),第2列数据(y轴,类型有色差 2、手写识别系统: (1)trainingDigits:手写体训练数据 (2)testDigits:手写体测试数据 3.kNN.py: 使用k-近邻算法改进约会网站的配对效果 手写识别系统

2019-03-17

Base64Util、FileUtil、GsonUtils、HttpUtil

Base64 工具类:Base64Util 文件读取工具类:FileUtil Json工具类:GsonUtils http 工具类:HttpUtil

2019-02-26

百度语音实战

系列文章: Java 语音记录(录音,存储为WAV文件):https://blog.csdn.net/haoranhaoshi/article/details/87888382 Java 语音识别(百度语音API):https://blog.csdn.net/haoranhaoshi/article/details/87888407 Java 语音合成并播放(百度语音API):https://blog.csdn.net/haoranhaoshi/article/details/87888430 Java 语音聊天机器人(百度语音API)(当前预置问答,可用图灵机器人框架扩展): https://blog.csdn.net/haoranhaoshi/article/details/87888469 (依赖前三篇博客代码) --------------------- 作者:浩然浩世 来源:CSDN 原文:https://blog.csdn.net/haoranhaoshi/article/details/87888469 版权声明:本文为博主原创文章,转载请附上博文链接!

2019-02-26

SpringBoot实战

SpringBoot入门实战,参考博客:https://blog.csdn.net/haoranhaoshi/article/details/87005611

2019-02-11

FTP的Java操作全面实战

FTP的连接、查询、上传、下载等全面操作Java代码,IDEA搭建。

2019-02-11

Socket实战

包含整个系列: Socket实战系列: Socket实战——UDP连接:https://blog.csdn.net/haoranhaoshi/article/details/86601468 Socket实战——TCP连接:https://blog.csdn.net/haoranhaoshi/article/details/86601522 Socket实战——查询数据库:https://blog.csdn.net/haoranhaoshi/article/details/86601566 Socket实战——监听数据库:https://blog.csdn.net/haoranhaoshi/article/details/86601584 Socket实战——聊天:https://blog.csdn.net/haoranhaoshi/article/details/86601771 Socket实战——文件上传:https://blog.csdn.net/haoranhaoshi/article/details/86601850

2019-01-22

JavaFX实例合集

JavaFX控件、动画实例合集,双击根目录下Jar包可体验效果,并可看到对应的代码。

2019-01-14

摄像、拍照、人脸识别、人脸库对比

系列文章: 一、JavaFX摄像:https://blog.csdn.net/haoranhaoshi/article/details/85880893 二、JavaFX拍照:https://blog.csdn.net/haoranhaoshi/article/details/85930981 三、百度人脸识别--人脸对比:https://blog.csdn.net/haoranhaoshi/article/details/85954440 四、人脸库对比:https://blog.csdn.net/haoranhaoshi/article/details/86302313

2019-01-11

人脸对比实战项目

人脸对比实战项目,IDEA搭建,可用IDEA直接打开,可参考我的博客: https://blog.csdn.net/haoranhaoshi/article/details/85954440

2019-01-10

Java摄像开源框架(文档、案例、Jar包)、个人项目工程(JavaFX)、原始实例(JavaFX)

Java摄像开源框架(文档、案例、Jar包)、个人项目工程(JavaFX)、原始实例(JavaFX),了解更多可查看:https://blog.csdn.net/haoranhaoshi/article/details/85880893

2019-01-05

提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

文本框Enter、列表框双击或者Enter、按钮点击皆可搜索,模糊搜索后可上下键选择列表框中某一项,提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

2019-01-01

Json+XML+Excel+DBFile相关的Jar包及关键操作代码

Json+XML+Excel+DBFile相关的Jar包及关键操作代码

2019-01-01

阿里Java开发手册个人加注Word版(同步手册2018.5.20版)

阿里Java开发手册个人加注Word版(同步手册2018.5.20版)

2019-01-01

Servlet及Ajax数据交互

Servlet及Ajax数据交互代码示例(服务端Java的Servlet,客户端Ajax)

2018-01-02

FileZilla_3.15.0.2_win64-setup

在本地管理云服务器或云虚拟主机网站文件

2018-01-02

中国慕课大学数据采集和管理网站-前后台-Java版

包括网站前台、后台、数据库。前台Html,后台Java,数据库MySQL。支持登录注册、课程刷新、课程列表、课程查询、知识点查询(精确到章节)、评论管理、用户管理、退出登录。框架都是目前主流框架:前台MUI、Bootstrap、VUE、JQGrid、Jquery-UI;后台SpringBoot、tk.Mybatis;爬取用的是HttpURLConnection和Jsoup,5大策略(内分小策略)支持全站所有风格的课程爬取。使用的工具是JDK、IDEA、Mysql、Navicat。需远程协助,请安装远程连接工具向日葵后,私信博主。

2021-07-19

Java全系列个人知识笔记

JVM、集合、线程、设计模式、设计原则、Spring、Spring Boot、Spring Cloud(Netflix、Alibaba)(分布式注册中心、配置中心、负载均衡、网关、熔断器、Feign)、分布式事务、消息队列、任务调度、ES、Redis、Mybatsi、Dubbo

2021-07-11

weather-select.zip(Java获取详细的天气数据)

IDEA工程,Java获取详细的天气数据。需注册中国气象数据中心,免费试用7天。 可参考博主博文:https://blog.csdn.net/haoranhaoshi/article/details/106938218

2020-06-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除