JAVA
文章平均质量分 78
小小青蛙仔
这个作者很懒,什么都没留下…
展开
-
并发与并行
并发并行摘要(1): Concurrency and ParallelismIn a multithreaded process on a single processor, the processor can switch execution resources between threads, resulting in concurrent execution.In the same multithreaded process in a shared-memory multiprocess.原创 2022-04-21 16:17:58 · 878 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式文章目录适配器模式@[toc]适配器中的角色简单案例类适配器模式案例对象适配器将一个类的接口转化为客户希望的另外一个接口, 使得原本由于接口不能兼容而不能一起工作的哪些类可以在一起工作.该模式的有点如下客户端通过适配器可以透明的调用目标接口复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类将目标类和适配者类解耦,解决了目标类和适配者类接口不一致问题在很多业务场景符号开闭原则缺点:适配器编写过程中需要结合业务场景全面考虑, 可能增加系统复杂性增加原创 2021-09-24 16:37:21 · 108 阅读 · 0 评论 -
Arthas-java诊断工具
ArthasArthas 是 alibaba 开源的java诊断工具, 支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。安装方式使用arthas-boot(推荐)下载arthas-boot.jar,然后用java -jar的方式启动:curl -O https://arthas.aliyun.com/arthas-boot.jarjava -jar arthas-boot.jar打印帮助信息:原创 2021-09-09 16:42:15 · 151 阅读 · 0 评论 -
设计模式中原则篇
设计模式中原则文章目录设计模式中原则开闭原则实现思路里氏替换原则里式替换的作用实现方法里式替换部分内容摘译 https://www.jianshu.com/p/5d677d9eafb4全篇内容摘译 http://c.biancheng.net/view/1317.html开闭原则当应用的需求进行改变时,在不修改软件实体源代码的基础上, 可以扩展模块功能,使其满足新需求软件实体项目中规划分出的模块类与接口方法实现思路 可以通过抽象约束,封装变化来实现开闭原则,通过接口翻译 2021-09-06 14:46:33 · 110 阅读 · 0 评论 -
Class文件组成介绍
Class文件组成介绍参考 1- 9 https://blog.csdn.net/zhangjg_blog/article/details/22432599整理在这里帮自己梳理描述符概述每种基本数据类型都有一个大写字母做对应, void也有一个大写字符做对应基本数据类型和void类型类型的对应字符byteBcharCdoubleDfloatFintIlongJshortSbooleanZvoidV那翻译 2021-04-23 11:33:58 · 470 阅读 · 0 评论 -
StringTable字符串池介绍
String_Table常量池与字符串池的关系我们先准备了一点简单的代码:public class StringTable1 { public static void main(String[] args) { String s1 = "a"; String s2 = "b"; String s3 = "ab"; }}上面代码运行完成以后生成StringTable1.class对象, 然后通过javap -v StringTab翻译 2021-04-20 20:00:40 · 128 阅读 · 0 评论 -
JVM 内存区域介绍
JVM介绍JVM整体结构首先我们需要知道java中都由什么组成?对象,对象引用,类, class文件,成员变量,局部变量,静态变量,方法,基本数据类型(int…) 下面我们介绍这些组成在JVM那一块存储方法区方法区存储的内容:运行时常量池, 字段和方法数据, 以及方法和构造函数的代码, 包括用于类和实例初始化以及接口初始化的特殊方法JDK1.8以前JDK1.8以前, hotspot方法区成为永久代, 方法区存在与JVM管理,设置永久代参数 -XX:MaxPermSize原创 2021-04-20 19:59:11 · 353 阅读 · 1 评论 -
Spring AOP 与 IOC
Spring AOP 与 IOCIOC (Inversion of control控制反转)IOC 不是一个技术, 而是一种思想在传统的Java SE中, 我们使用一个对象时需要明确new一个对象, 而引入一个Spring IOC后 我们将控制权限教给了Spring容器来控制.所有对象创建到销毁由Spring来控制,**控制以后怎么来使用呢? 这里引入了一个DI(依赖注入)**来实现IOC 扩展 DI(依赖注入)上面我的讲到 Spring 的IOC 将 对象的创建于销毁进行了控制, 只是控制了原创 2020-12-07 21:46:17 · 183 阅读 · 1 评论 -
根据链表算法学习对象引用
根据链表算法学习对象引用题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链原创 2020-11-18 18:02:17 · 276 阅读 · 0 评论 -
volatile
volatile问题介绍 为了提高处理器的处理效率, 在处理器与内存之间添加了多级缓存, 由于引入了多级缓存就会发生缓存不一致问题, 每个线程都有自己工作内存, 自己的工作内存当中保存了自己使用到的变量从主内存复制到自己的工作内存中,注意: 介绍一下status修饰静态变量, 当一个变量被status修饰,该变量所有实例共享,存在一个误区在多线程中静态变量的改变其他线程JVM尽量也会保证可见性,但是不能完全保证详细status关键字介绍地址 : 未更新...volatile 可见性原创 2020-11-17 12:06:19 · 76 阅读 · 0 评论 -
BigDecimal介绍使用
Bigdecimal在小数小点计算中如果使用double.float经常会遇到丢失经度,这个时候就要使用Bigdecimal来保证精度首先介绍一下初始化方式Bigdecimal 有两种创建方式new BigDecimal() Bigdecimal.valueOf()这里建议如果是小数类型使用valueOf()方式,因为如果使用new Bigdecimal在初始化时还是有可能出现精度丢...原创 2020-04-21 14:31:42 · 504 阅读 · 0 评论 -
JAVA菜鸟演变过程--自定义异常
继承RuntimeException 为运行时异常 继承Exception 为检查性异常** * 自定义运行时异常 * * @author HuXueKuo * */public class CustomRuntimeException extends RuntimeException { private static final long serialVersion...原创 2018-07-18 11:24:54 · 224 阅读 · 0 评论 -
HashTable与HashMap
继承的父类不同HashTable继承Dictionary类HashMap继承AbstractMap类不过都实现了Map,Cloneable(可重复),Serializable(可序列化)对外提供的接口不同HashTable比HashMap多提供了elments()和contains()两个方法elments()方法继承自HashTable的父类Dictionary,el...翻译 2018-12-06 18:59:26 · 97 阅读 · 0 评论 -
反射学习
什么是反射程序可以访问,检测和修改它本身或行为的一种能力JAVA反射是在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,这种动态获取信息,以及动态调用对象的方法称为JAVA语言的反射机制在运行是给定类的名字就可以调用类的信息,获取累的所有信息以及方法(包括私有的,实现的接口)为什么要用反射机制这就涉及到了动态与静态编译类型初始化方式优...原创 2018-12-09 17:34:06 · 109 阅读 · 0 评论 -
设计模式之简单工厂模式
概念简单工厂决定实例化那个对象,简单工厂是最简单的工厂模式,工厂类是整个工厂模式的关键,通过工厂类外界可以从直接创建具体产品的尴尬局面摆脱出来,不需要管对象是如何创建出来如何组织的,明确各自的职责和权力有利于软件体系结构的优化.缺点:全部的创建对象的逻辑全部集中在工厂类中,违反了高内聚责任分配原则,它所能创建的对象都是实现考虑好的,如果要添加新的对象还是需要修改工厂类以下程序是实现输...原创 2019-03-07 19:07:11 · 177 阅读 · 0 评论 -
设计模式之策略模式
它定义了算法家族.分别封装起来让他们可以互相替换.这个模式让算法的变化不会影响到使用算法的用户策略模式是一种定义一系列的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不停,.简单来说策略模式就是来封装算法的,但是在实践过程中,我们发现可以使用它封装所有类的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理多变的可能性优点:简化测试...原创 2019-03-12 00:24:10 · 153 阅读 · 0 评论 -
设计模式之装饰模式
定义:动态的给一个对象添加一些额外的职责,就添加功能来说,装饰模式比生成子类更灵活给已有的功能动态添加更多功能的一种方式当系统需要新的功能时,时想旧的类中添加新的代码,这些新的代码主要装饰了新的功能或者核心职责在主类中添加新的代码,新的属性或者新的逻辑,从而添加的主类的复杂度装饰模式提供了一个非常好的解决方案,它吧每个要装饰的功能放在,并让这个类包装它所要装饰的对象,因此在需要装饰特殊行...原创 2019-03-18 21:53:43 · 92 阅读 · 0 评论 -
并发编程---入门
Synchronized关键字synchronized有加锁的作用,所有的synchronized修饰方法都会顺序执行(占用CPU的顺序)当synchronized关键字修饰静态方法(static)时升级为类锁,如果不是静态方法两个对象之间没有关系Synchronized代码块可以做更细粒度的 可以做对象锁 可以做类锁 可以任意对象锁 同类型锁互斥,不同类型锁互不干扰不要在线程内部...原创 2019-04-08 00:24:12 · 76 阅读 · 0 评论 -
IDEA创建MAVEN项目
以前开发都用的eclipse,该为IDEA有点吃不消,作为记录使用tomcat原创 2019-04-08 11:47:52 · 86 阅读 · 0 评论 -
MongoDB
MongoDB下载地址: wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.6.tgz 启动mongoDB使用默认端口 mongod --dbpath /db (默认端口号:27017)设置端口启动 mongod --dbpate...原创 2018-03-24 21:50:07 · 271 阅读 · 0 评论