Java
蜗牛!Destiny
博客已经迁移到www.codeobj.com,感觉写的还不错的童鞋可以到这里继续查看
展开
-
Spring-手写Spring注解版本事务,Spring事物的七大传播行为
一、注解1、什么是内置注解(1)@SuppressWarnings 再程序前面加上可以在javac编译中去除警告--阶段是SOURCE(2)@Deprecated 带有标记的包,方法,字段说明其过时----阶段是SOURCE(3)@Overricle 打上这个标记说明该方法是将父类的方法重写--阶段是SOURCE1.1、@Overricle案例演示 @O...原创 2020-01-20 10:20:36 · 967 阅读 · 0 评论 -
Spring-SpringAOP原理,手写Spring事务框架
一、Spring核心知识Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应...原创 2020-01-03 14:02:04 · 1012 阅读 · 0 评论 -
JVM性能优化--类加载器,手动实现类的热加载
一、类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加...原创 2019-12-23 10:50:27 · 938 阅读 · 0 评论 -
JVM性能优化--字节码技术
一、字节码技术应用场景AOP技术、Lombok去除重复代码插件、动态修改class文件等二、字节技术优势Java字节码增强指的是在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修改。Java字节码增强主要是为了减少冗余代码,提高性能等。实现字节码增强的主要步骤为:1、修改字节码在内存中获取到原来的字节码,然后通过一些工具(如 ASM,Java...原创 2019-12-18 09:09:12 · 621 阅读 · 0 评论 -
JVM性能优化--JVM参数配置,使用JMeter简单测试配合说明参数调优
一、JVM参数配置1、常见参数配置-XX: PrintGC 每次触发GC的时候打印相关日志-XX: UseSerialGC 串行回收-XX: PrintGCDetails 更详细的GC日志-Xms 堆初始值-Xmx 堆最大可用值-Xmn 新生代堆最大可用值-XX:Surviv...原创 2019-12-16 11:45:52 · 1815 阅读 · 0 评论 -
JVM性能优化--Java的垃圾回收机制
一、Java内存结构1、Java堆(Java Heap) java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。 java堆是垃圾收集器管理的主要区域,因此也被成为“GC堆”(Garbage Collected Heap)。...原创 2019-12-11 10:36:41 · 1069 阅读 · 1 评论 -
设计模式之原型模式、策略模式、观察者模式
一、原型模式1、什么是原型模式克隆原型模式是一个创建型的模式。原型二字表明了改模式应该有一个样板实例,用户从这个样板对象中复制一个内部属性一致的对象,这个过程也就是我们称的“克隆”。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更高效。2、原型模式应用场景(1)类初始化需要消化非常多...原创 2019-12-03 10:25:35 · 924 阅读 · 0 评论 -
设计模式之适配模式、外观模式
一、适配模式1、什么是适配器在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。2、适配器分类适配器分为,类适配器、对象适配、接口适配方式类适配器方式采用继承方式,对象适配方式使用构造函数传递3、...原创 2019-11-28 09:00:42 · 898 阅读 · 0 评论 -
Java中使用Calendar进行获取指定时间,使用SimpleDateFormat进行格式化转换
java中使用Calendar获取指定的时间public class DateTranslate { /** * 获取指定日期的间隔月份的第一天的日期 * @param date * @param sep * @return */ public static Date getMonthFirstDay(Date date, In...原创 2019-11-27 19:47:14 · 1739 阅读 · 0 评论 -
Angular中ViewChild\ngAfterViewInit\Promise的使用,在父组件初始化时等待子组件的返回值
1、子component中的异步方法initCreateJob = () => new Promise((resolve, reject) => { setTimeout(() => { this.spiderFormService.saveUserJob(this.spiderJobInfo).subscribe((res: Res...原创 2019-11-26 13:52:33 · 920 阅读 · 0 评论 -
设计模式之建造者模式、模版方法
一、建造者模式建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。建造者模式通常包括下面几个角色:1、Builder:给出一个抽象接口,以规范产品...原创 2019-11-19 16:35:16 · 950 阅读 · 0 评论 -
XXL-JOB使用命令行的方式启动python时,日志过多导致阻塞的解决方式
一、Runtime.getRuntime().exec()的阻塞问题这个问题也不能算是XXL-JOB的问题,而是Java的Runtime.getRuntime().exec()造成的,BufferedReader的缓冲区大小有限,当不能及时从缓冲区中把输出取走,那么缓冲区满了之后就会导致程序阻塞;1、如何解决最简单的方式就是将正常输出和异常输出使用两个不同的线程进行操作Process p...原创 2019-11-18 11:29:06 · 4177 阅读 · 0 评论 -
Spring Boot后端与Angular前端进行timestamp的交互
后端使用java.sql.Timestamp后端vo字段类型使用import java.sql.Timestamp;Mapper可以为字段加上属性jdbcType="TIMESTAMP" 也可以不加<result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>Angular前端vo无论后端使...原创 2019-11-14 13:47:20 · 1106 阅读 · 0 评论 -
设计模式之代理模式
代理模式通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理。既(AOP微实现) ,AOP核心技术面向切面编程。1、代理模式应用场景SpringAOP、事物原理、日志打印、权限控制、远程调用、安全代理 可以隐蔽真实角色2、代理的分类静态代理(静态定义代理类)动态代理(动态生成代理类)Jdk自带动态代理Cglib 、javaassist(字节码操作...原创 2019-11-05 10:14:21 · 840 阅读 · 0 评论 -
设计模式之工厂模式
一、什么是工厂模式实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式二、工厂模式好处工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。利用工厂模式可以降低程序的耦合性,为后期的维护修改提供了很大的便利。将选择实现类、创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。三、工厂模式分类1、简单工厂模式简单工厂模式相当于是一个工厂中有各种...原创 2019-10-30 14:01:47 · 866 阅读 · 0 评论 -
设计模式之单例模式
一、设计模式1、设计模式分类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。2、设计模式的六大原则1)、...原创 2019-10-28 16:03:27 · 879 阅读 · 0 评论 -
设计模式之反射机制
一、 什么是Java反射就是正在运行,动态获取这个类的所有信息。1、反射机制的作用- 1,反编译:.class-->.java- 2.通过反射机制访问java对象的属性,方法,构造方法等;2、反射机制的应用场景Jdbc 加载驱动-----Spring IOC3、反射机制获取类有三种方法 //第一种方式: Classc1 = Class.for...原创 2019-10-28 09:14:14 · 939 阅读 · 0 评论 -
并发编程之Disruptor并发框架
一、什么是DisruptorMartin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易。这个系统是建立在JVM平台上,其核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单。业务逻辑处理器完全是运行在内存中,使`用事件源驱动方式。业务逻辑处理器的核心是Disruptor。Disruptor它是一...原创 2019-10-24 09:53:29 · 378 阅读 · 0 评论 -
并发编程之Java锁
一、重入锁锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下 ReentrantLock 和synchronized 都是 ...原创 2019-10-22 09:52:59 · 871 阅读 · 0 评论 -
并发编程之Callable异步,Future模式
Callable在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务执行结束后,无法获取执行结果。我们一般只能采用共享变量或共享存储区以及线程通信的方式实现获得任务结果的目的。不过,Java中,也提供了使用Callable和Future来实现获取任务结果的操作。Callable用来执行任务,产生结果,而Future用...原创 2019-10-19 18:37:31 · 997 阅读 · 0 评论 -
并发编程之线程池
一、线程池1、什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制地创建,不仅会消...原创 2019-10-15 09:17:27 · 845 阅读 · 0 评论 -
Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)
一、HttpPost上传文件public static String getSuffix(final MultipartFile file){ if(file == null || file.getSize() == 0){ return null; } String fileName = file.getOriginalF...原创 2019-10-14 09:54:03 · 1415 阅读 · 0 评论