自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 Java8 Stream流操作&数组转化成集合

参考:添加链接描述添加链接描述流操作@Test public void testStreamOfMap(){ // 使用lambda表达式 Stream.of("apple", "banana", "orange", "waltermaleon", "grape") .map(s -> s.substring(0, 1)) .forEach(s -> System.out.println

2021-03-04 14:30:24 2133 2

原创 排序算法(Java版)

一、内部排序1、插入排序(直接插入排序、希尔排序)在这里插入代码片2、选择排序(简单选择排序、堆排序)3、交换排序(冒泡排序、快速排序)//冒泡排序public void bubbleSort(int[] nums){ int i, j, flag; int temp; for (i = nums.length -1; i >= 1; --i){ /** 变量flag用来标记本次排序是否交换了元素 */

2020-12-03 00:10:05 144

原创 浏览器内核特点

参考:https://www.jianshu.com/p/93cec6397e28内核特点优缺点其他浏览器IETrident该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到IE11,也被普遍称作”IE内核”。非开源优点:兼容性好,CPU占用小,内存占用小。缺点:该内核BUG很多,安全性问题没有得到解决IE、猎豹安全、360极速浏览器、百度浏览器firefoxGeckoGecko的特点时代码完全公开,因此其开发程度

2020-10-04 15:22:23 234

原创 ASM 框架

来源声明今天介绍下ASM之前先思考几个问题:1.ASM是什么?2.ASM 跟传说中的AOP三剑客APT、aspectJ、Javassit有什么关系?3.ASM是怎样修改class文件的?1、ASM是什么?ASM 是一个 Java 字节码操控框架。它能被用来动态生成类或者增强既有类的功能。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的

2020-09-13 22:12:18 3358

原创 CGLIB 动态代理

一、CGLIB动态代理概览:JDK 动态代理机制只能代理实现了接口的类,而不能实现接口的类就不能实现JDK的动态代理,CGLIB 是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。二、什么是CGLIB1、它广泛的被许多AOP的框架使用,例如:Spring AOP和dynaop,为他们提供方法的interception(拦截);2、hibernate使用CGLIB来代理单端single-ended(多对一和一对

2020-09-13 21:44:57 97

原创 JDK 动态代理

备注:来源声明一、什么是代理代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。代理模式UML图:结构示意图:为了保持行为的一致性,代理类和委托类通常会实现相同的接口,所以在访问者看来两者没有丝毫的区别。通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间,从而在设计上获得了更大的灵活性。Java 动态代理

2020-09-13 19:36:50 219

原创 Spring中的代理

Spring中有两种类型的代理:使用 JDK Proxy 类创建的 JDK 代理以及使用 DDLIB Enhancer 类创建的基于 CGLIB 的代理。代理的核心目标是拦截方法的调用,并在必要时执行适用于特定方法的通知链。通知的管理和调用基本上是独立于代理的,由 Spring AOP 框架管理。而代理主要负责拦截对所有方法的调用,并将它们根据需要传递给 AOP 框架,以便应用通知。此外,代理还必须支持一组附加功能,即可以通过 AopContext 类(这是一个抽象类)配置代理以公开自己,以便可以检索代理

2020-09-13 16:32:41 606

原创 设计模版

来源声明:菜鸟教程一、概述设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。作用:使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。分类:模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns),另一类设计模式:J2EE 设计模式。创建型模式:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直

2020-09-12 21:56:26 74

原创 synchronized关键字的使用范围及其作用

1、修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;当两个并发线程访问同一个对象中的synchronized(this){}同步代码块时,同一时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块;当一个线程访问对象中的一个synchronized(this){}同步代码块时,另一个线程仍然可以访问该对象中的非synchronized(this){}同步代码块;当一个线程访问对象中的一个syn

2020-09-12 11:20:35 2692

原创 HashMap、Hashtable、HashSet

一、HashMap(API文档)//所在包package java.util;//继承关系public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {}HashMap是基于哈希表的Map接口的实现,当假设散列函数在桶之间正确地分散元素(均匀散列)时,基本读写操作( get和put )提供了常数(O(1))时间性能。Ha

2020-09-12 01:01:44 234

原创 String、StringBuilder、StringBuffer

一、概述//String类所在包package java.lang;//继承和实现关系public final class String implements java.io.Serializable, Comparable<String>, CharSequence {}String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变

2020-09-11 13:17:31 106

原创 Java基础优秀博文

并发编程(该作者不止一篇):https://blog.csdn.net/u014792301/article/details/106042708

2020-09-10 23:31:43 82

原创 JVM优秀博文

JVM面试全考点(可用于面试准备):https://blog.csdn.net/u014792301/article/details/108061976?运行时数据区域及对象访问:https://www.cnblogs.com/gw811/archive/2012/10/18/2730117.htmlJava内存模型(理解记忆):https://blog.csdn.net/suifeng3051/article/details/52611310Java内存模型(面试准备):https://blog..

2020-09-10 23:01:25 72

原创 JVM知识概览

1、运行时数据区域(JVM内存结构)2、Java类加载机制3、GC(垃圾回收)4、Java内存模型(内存通信)5、JVM调优及常用参数

2020-09-10 22:43:31 71

原创 测试优秀博文

1、项目经验2、测试理论3、测试方法4、缺陷管理系统(缺陷的生命周期)5、功能测试6、接口测试7、性能8、自动化 (Selenium和Appium)

2020-09-10 22:19:28 82

原创 HashMap类详解

HashMap:对于put、remove以及containsKey方法,averageTime(n)基本都是常量。1、HashMap类的方法描述//Constructs an empty HashMap with the specified initial capacity(初始容量) and load factor(加载因子).public HashMap(int initialCapacity, float loadFactor);//Constructs an empty HashMap w

2020-09-08 08:36:55 849

原创 JUnit 5 详解

1、什么是JUnit 5 ?(JUnit 5用户指南)JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit VintageJUnit Platform:首先是作为一个在JVM上启动测试框架的基础。它还定义了TestEngine API,用于开发运行在JUnit Platform的测试框架。此外,该平台还提供了一个控制台启动器(用于从命令行启动平台)和基于JUnit 4的运行器TestEngine(用于在JUnit Platform平台环境上运行JUnit 4。

2020-09-07 23:18:37 713

原创 JUnit 核心类源代码

1、Assert类//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package junit.framework;/** @deprecated */@Deprecatedpublic class Assert { protected Assert() { } public static void assert

2020-09-07 12:58:37 180

原创 JUnit

1、注解对比特性Junit4TestNG测试注解@Test@Test测试套件执行之前执行-@BeforeSuite测试套件执行之后执行-@AfterSuite测试之前执行-@BeforeTest测试之后执行-@BeforeTest在一个测试方法所属的任意一个组的第一个方法被调用之前执行-@BeforeGroups在一个测试方法所属的任意一个组的第一个方法被调用之后执行-@AfterGroups在当前类的任意一个测试

2020-09-06 22:44:35 110

原创 Java8 新特性

一、Lambda 表达式 − Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中)。1、概述:理解Lambda表达式的Java实现,需要了解两个结构,分别是lambda表达式和函数式接口。lambda表达式本质上就是一个匿名(即未命名)方法。但是这个方法不是独立执行的,而是用于实现由函数式接口定义的另一个方法。因此,lambda表达式会导致产生另一个匿名类。lambda表达式也常被叫做闭包。函数式接口是仅包含一个抽象方法的接口。一般这个方法指了接口的目标用途,因此,函数式接口通常表示

2020-09-06 17:21:43 141

原创 Java类加载机制

虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。例如,如果编写一个面向接口的应用程序,可以等到运

2020-08-31 13:38:34 84

原创 CSDN编辑技巧

段首缩进:段首前添加“      ”换行使用:

2020-08-30 23:12:05 75

转载 Java异常处理

一、 异常机制的概述异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。程序错误分为三种:1.编译错误;2.运行时错误;3.逻辑错误。编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这个也是大家在刚接触编程语言最常遇到的问题。运行时错误是因为程序在执行时,运行环境发现了不能执行的操作。逻辑错误是因为程序没有按照预期的逻辑顺序执行。异常也就是指程序运行时发生

2020-08-30 14:20:21 94

转载 java动态代理实现与原理详细分析

关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式–代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。一、代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是,我们在访问实际对象

2020-08-29 18:52:15 99

原创 面试题

Java面试题:https://blog.csdn.net/qq_40949465/article/details/88766411?

2020-08-29 09:31:39 89

原创 Java反射

名词解释一、解释型语言和编译型语言1、解释型语言:不需要编译,在运行的时候逐行翻译解释;修改代码时可以直接修改,可以快速部署,不过性能上会比编译型语言稍差;比如 JavaScript、Python ;2、编译型语言:需要通过编译器将源代码编译成机器码才能执行;编译之后如果需要修改代码,在执行之前就需要重新编译。比如 C 语言;Java 严格来说也是编译型语言,但又介于编译型和解释型之间;Java 不直接生成机器码而是生成中间码:编译期间,是将源码交给编译器生成 class 文件(字节码),这个过程中

2020-08-29 07:24:29 119

原创 GC(垃圾回收)

1、JAVA GC变量的含义及jstat是jvm最常用的命令:https://blog.csdn.net/yuxin6866/article/details/777187482、JAVA 中的垃圾回收:https://blog.csdn.net/dabokele/article/details/60334139元空间(本地内存):从永久代到元空间的原因是因为 JDK 8 以前的JVM版本永久代会用于存储一些元数据(比如类定义信息、内部化字符串等),因为在实际使用中难以确定要使用的空间,所以很可能会导致

2020-08-28 07:57:55 95

原创 static、abstract、final关键字对比

Java中的关键字final修饰变量、方法、类分别表示什么含义?先看一个简单的介绍修饰对象解释说明备注类无子类,不可以被继承,更不可能被重写final类中的方法默认是final的方法方法不能在子类中被覆盖类的private方法会隐式地被指定为final方法。final方法不能被子类的方法覆盖,但可以被继承变量称为常量,初始化以后不能改变值用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分.

2020-08-26 19:01:45 164

转载 Junit学习与汇总

1. 如何测试静态方法?a)将private方法的访问符改为 default (因为default访问修饰符是在同一个包中访问)b) 用反射机制 method.getDeclaredMethod()2. 怎么利用 JUnit 来测试一个方法的异常?try…fail...catch…@Testpublic voidtestExceptionMessage() { try { new ArrayList<Object>().get(0);

2020-08-23 07:16:22 130

原创 运行时数据区域(JVM内存结构)

JVM相关知识:Java内存区域与内存溢出异常、Java内存模型与线程、垃圾回收算法、垃圾收集器与内存分配策略、虚拟机类加载机制、Java虚拟机调优、常见参数、常见问题。1. Java内存管理1.1 概述 fantasy于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的

2020-08-22 16:40:11 130

原创 查找算法(Java版)

本文概括性的收纳了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。

2020-08-21 13:00:19 244

原创 IntelliJ IDEA 学习

IntelliJ IDEA 学习Mac常用快捷键IntelliJ IDEA 官方学习文档学习建议使用官方第一手资料,网上很多翻译的文档多是老版本,没有学习价值。个人觉得哪怕用谷歌翻译也比各种过时的中文版强。

2020-07-31 00:05:54 75

空空如也

空空如也

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

TA关注的人

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