JAVA
JAVA
Sylarjyd
这个作者很懒,什么都没留下…
展开
-
上传文件类UploadHelper
/** * 上传文件类 */package com.gootrip.util;/** * @author advance * http://www.jq-school.com */import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStrea.原创 2022-05-14 21:58:06 · 162 阅读 · 0 评论 -
多线程的知识整理
1.并行和并发有什么区别?并行:多个处理器或多核处理器同时处理多个任务。 并发:多个任务在同一个 CPU 核上,按细分的时间片轮流(交替)执行,从逻辑上来看那些任务是同时执行。2.线程和进程的区别?一个程序下至少有一个进程,一个进程下至少有一个线程,一个进程下也可以有多个线程来增加程序的执行速度。3.守护线程是什么?守护线程是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。在 java 中垃圾回收线程就是特殊的守护线程。4.创建线程有哪几种原创 2022-05-14 21:51:36 · 84 阅读 · 0 评论 -
logback日志文件配置按天压缩日志
logback日志文件配置按天压缩日志原创 2022-03-04 15:21:02 · 931 阅读 · 0 评论 -
线程池的创建方式
package com.jyd.test.thread;import cn.hutool.core.thread.ThreadFactoryBuilder;import org.apache.commons.lang3.concurrent.BasicThreadFactory;import org.junit.Test;import java.util.concurrent.*;public class TestThreadFactory { @Test public.原创 2021-12-15 12:38:36 · 419 阅读 · 0 评论 -
logback.xml配置
<?xml version="1.0" encoding="UTF-8"?><configuration> <!-- 最好使用绝对路径 --> <property name="LOG_HOME" value="log/data"/> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder char.原创 2021-12-15 11:25:10 · 85 阅读 · 0 评论 -
xml格式的String字符串转json字符串
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20180130</version></dependency>org.json.JSONObject object = XML.toJSONObject(result);String jsonData = object.g.原创 2021-09-15 17:10:50 · 417 阅读 · 0 评论 -
Java中CountDownLatch和CyclicBarrier的区别
CountDownLatch和CyclicBarrier的功能看起来很相似,不易区分,有一种谜之的神秘。本文将通过通俗的例子并结合代码讲解两者的使用方法和区别。CountDownLatch和CyclicBarrier都是java.util.concurrent包下面的多线程工具类。从字面上理解,CountDown表示减法计数,Latch表示门闩的意思,计数为0的时候就可以打开门闩了。Cyclic Barrier表示循环的障碍物。两个类都含有这一个意思:对应的线程都完成工作之后再进行下一步动作,也就是大家原创 2020-07-07 11:06:22 · 339 阅读 · 0 评论 -
sleep()、wait()、join()、yield()的区别
sleep()sleep() 方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级的线程得到执行的机会,也可以让低优先级的线程得到执行机会。但是 sleep() 方法不会释放“锁标志”,也就是说如果有 synchronized 同步块,其他线程仍然不能访问共享数据。wait()wait() 方法需要和 notify() 及 notifyAll() 两个方法一起介绍,这三个方法用于协调多个线程对共享数据的存取,所以必须在 sync原创 2020-06-18 10:49:55 · 218 阅读 · 0 评论 -
hystrix常用配置详解
hystrix.command.default和hystrix.threadpool.default中的default为默认CommandKeyCommand PropertiesExecution相关的属性的配置:hystrix.command.default.execution.isolation.strategy 隔离策略,默认是Thread, 可选Thread|Semaphorehystrix.command.default.execution.isolation.thread.timeou原创 2020-06-16 10:41:21 · 604 阅读 · 0 评论 -
分布式自增ID算法snowflake (Java版)
Twitter的分布式自增ID算法snowflake概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MyS...原创 2020-06-05 11:24:30 · 312 阅读 · 0 评论 -
如何控制三个线程顺序执行?
1.使用join thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //调用join方法,等待线程t执行完毕t.join(1000); //等待 t 线程,等待时间是1000毫秒。publicclassThreadTest1{//T1、T2、T3三个线程顺序执行publicstaticvoid...原创 2020-06-05 11:25:12 · 408 阅读 · 0 评论 -
SpringBoot注解说明
1、@SpringBootApplication这是 Spring Boot 最最最核心的注解,用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。其实这个注解就是@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan这三个注解的组合,也可以...原创 2019-06-24 13:58:07 · 134 阅读 · 0 评论 -
设计原则简述
1、单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到破坏。 2、开闭原则(OCP):开发中编写的模块应该对扩展开放,对修改关闭。 3、里式替换原则:只要父类能出现的地方,子类就可以出现。 4、依赖倒置原则原创 2017-04-30 01:01:38 · 475 阅读 · 0 评论 -
单例设计模式的五种分类
1、单例设计模式的核心作用:保证一个类只有一个实列,并且提供访问该实例的全局访问点。2、单例模式的优点:由于单例设计模式只生成一个实列,减少了系统性能的开销,当一个对象的产生需要比较多的资源时,如读取配置文件、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。 单例设计模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计一个单例类,负责原创 2017-04-03 21:49:59 · 477 阅读 · 0 评论 -
单例设计模式
package cn.jyd.singleton;//单例模式的核心就是构造方法私有,对象不能随便产生class Singleton01{ private static Singleton01 instance; private Singleton01(){ } public static Singleton01 getInstance(){ if(in原创 2017-04-03 00:13:35 · 300 阅读 · 0 评论 -
JSP九大内置对象以及作用
JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。JSP所支持的九大隐式对象:原创 2017-09-04 13:41:40 · 391 阅读 · 0 评论 -
List遍历的三种方式
package com.jyd.demo;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * * 类名: ListDemo * 备注: list的遍历方式 * 时间: 2017年4月8日 下午4:08:07 * 作者:姜依德 * @version * @s原创 2017-04-08 16:23:34 · 539 阅读 · 0 评论 -
JAVA IO流实现字节数组与任何基本类型和引用类型的相互转换
package com.jyd.demo;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.原创 2017-04-12 12:44:21 · 1910 阅读 · 0 评论 -
Java基础概述
1、java简史 1995年 java诞生 sun 詹姆斯.高斯林 2009 oracle 74亿收购Sun2011 JDK7.02014 JDK 8.0 2、环境变量的配置: classpath:.,java_home:%java_home%inpath:jdk的安装目录基本数据类型8种 字节byte 1字节 短整型short 2字节 字符char 2字节 整原创 2017-04-30 00:50:15 · 342 阅读 · 0 评论 -
Java虚拟机垃圾回收机制
1、分代垃圾回收机制: 年轻代对象 年老代对象 持久代对象2、垃圾收集器: 串行收集器:单线程,无需多线程交互,效率高,适合单处理器,多处理器也可以处理,数据量在100M左右。数据量小 并行收集器:设置与多处理器相同的线程数,进行垃圾回收。应用响应时间长 并发收集器:应用不停止的情况下,使用独立的线程进行垃圾回收。 k:使用处理器个数 n:系统的处理器个数 1=原创 2017-04-30 00:37:52 · 242 阅读 · 0 评论 -
编程基础之流程控制
1、顺序结构:自上而下 2、条件分支结构: if(){}elseif(){}… else{} , if(){}else{} ,if(){} switch(){switch的值只能为byte short char int String(jdk 7.0) enum(枚举) case 值1:原创 2017-04-30 00:36:25 · 292 阅读 · 0 评论 -
ArrayList、TreeSet、TreeMap、HashSet和HashMap的简单使用示例
1、创建学生类package com.jyd.demo;/** * * 类名: Student * 备注: 学生类 * 时间: 2017年4月8日 下午2:52:49 * 作者:姜依德 * @version * @since JDK 1.8 */public class Student implements Comparable<Student> { privat原创 2017-04-08 16:04:30 · 716 阅读 · 0 评论