后端java
文章平均质量分 84
lbxxzt
这个作者很懒,什么都没留下…
展开
-
后端---java中注解工作原理(非小白文)
我就一张图,别的不多说!!!!原创 2019-07-03 16:56:28 · 514 阅读 · 0 评论 -
后端--Java中class文件结构
最近刚看完《深入理解Java虚拟机》周志明著 第六章 类文件结构,在这里写一篇关于JVM如何解析Class文件结构的博客。Class类文件结构Class文件是一组以8字节为基础单位的二进制流, 各个数据项目严格按照顺序紧凑排列在class文件中, 中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行的程序。Java虚拟机规范规定,Class文件格式采用类似C语言结构...原创 2018-12-17 15:19:38 · 512 阅读 · 0 评论 -
后端---深入理解双重检查锁定
Java中的双重检查锁定双重检查锁定又称双重效验锁,以前常常用于Java中的单例模式,在并发编程中的线程池中常常用到该模式,并且在Spring中DI(依赖注入)也用到该模式的思想,当Spring运行的时候将我们加入注解的bean(Java对象)遍历出来,并创建其相关的一个实例,在程序的运行中,如果遇到要操作该对象的时候,便使用Spring为我们创建的该类的单例进行相关的操作。但是如何确保只生成...原创 2018-12-27 21:21:04 · 462 阅读 · 0 评论 -
Java自定义类加载器与双亲委派模型
1. 双亲委派模型关于双亲委派模型,网上的资料有很多。我这里只简单的描述一下,就当是复习。1.1 什么是双亲委派模型?首先,先要知道什么是类加载器。简单说,类加载器就是根据指定全限定名称将class文件加载到JVM内存,转为Class对象。如果站在JVM的角度来看,只存在两种类加载器: 启动类加载器(Bootstrap ClassLoader):由C++语言实现(针对HotSp...原创 2018-12-22 09:51:38 · 286 阅读 · 0 评论 -
后端---史上最全最小白最简单最细致的Java接入微信支付接口(Native接入)
距离上一篇博客史上最全最小白最简单最细致的Java接入支付宝支付接口方法 https://blog.csdn.net/weixin_42504145/article/details/85077635已经过去快三天了,终于在今天将微信整个电脑网页支付整合在SSM框架上.大家可以在Github https://github.com/nigel-zhou/reimagined-waddl...原创 2018-12-21 20:40:29 · 12939 阅读 · 37 评论 -
后端---git常用命令和使用顺序
Git基本了解git命令是一些命令行工具的集合,它可以用来跟踪,记录文件的变动。比如你可以进行保存,比对,分析,合并等等。这个过程被称之为版本控制。已经有一系列的版本控制系统,比如SVN, Mercurial, Perforce, CVS, Bitkeepe等等。Git是分布式的,这意味着它并不依赖于中心服务器,任何一台机器都可以有一个本地版本的控制系统,我们称之为仓库。如果是多人协作的话...原创 2018-12-26 22:23:50 · 1443 阅读 · 0 评论 -
后端---Java设计模式之单例模式详解
一、单例模式定义单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 二、为什么要使用单例模式1.对于系统中的某些类来说,只有一个实例很重要。例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;售票时,一共有100张票,可有有多个窗口同时售票,但需要保证不要超售(这里的票数余量就是单例,售票涉及到多线程)。如果不是用机制对窗口对象进行唯一化将弹出...原创 2018-12-15 09:58:14 · 302 阅读 · 1 评论 -
后端---java的动态代理机制详解
关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。一、代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的...原创 2018-12-14 16:26:54 · 300 阅读 · 0 评论 -
后端---Java中的常量池(字符串常量池、class常量池和运行时常量池)
在Java的内存分配中,总共3种常量池:在JDK1.7之前运行时常量池逻辑包含字符串常量池存放在方法区, 此时hotspot虚拟机对方法区的实现为永久代在JDK1.7 字符串常量池被从方法区拿到了堆中, 这里没有提到运行时常量池,也就是说字符串常量池被单独拿到堆,运行时常量池剩下的东西还在方法区, 也就是hotspot中的永久代在JDK1.8 hotspot移除了永久代用元空间(Me...原创 2018-12-02 01:34:16 · 746 阅读 · 0 评论 -
后端---Java中Iterator(迭代器)原理分析
Java中Iterator(迭代器)的用法及其背后机制的探究一.背景延伸 在Java中遍历List时会用到Java提供的Iterator,Iterator十分好用,原因是:迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单...原创 2018-12-22 18:30:09 · 467 阅读 · 0 评论 -
JVM----一个对象的回收过程
本篇来自周志明的<<深入理解java虚拟机>>预备知识: 如何判定对象存在活引用? https://blog.csdn.net/q5706503/article/details/84899581即使在可达性分析算法中不可达的对象,也并非是“非死不可”的 ,这时候它们暂时处于“缓刑” 阶段 ,要真正宣告一个对象死亡 ,至少要经历两次标记过程 : 如 果对象在进行可达性...原创 2018-12-11 23:49:49 · 356 阅读 · 0 评论 -
JVM----JVM 垃圾收集GC算法
本篇来自周志明的<<深入理解java虚拟机>> 标记-清除算法标记-清除(Mark-Sweep)算法是最基础的算法,就如它的名字一样,算法分为”标记”和”清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。它主要有两个缺点:一个是效率问...原创 2018-12-11 23:51:36 · 157 阅读 · 0 评论 -
后端---Redis持久化方式
Redis不同于Memcached的很重一点就是,Redis支持持久化,而且支持两种不同的持久化操作。Redis的一种持久化方式叫快照(snapshotting,RDB),另一种方式是只追加文件(append-only file,AOF).这两种方法各有千秋,下面我会详细这两种持久化方法是什么,怎么用,如何选择适合自己的持久化方法。快照(snapshotting)持久化Redis可以通过创...原创 2019-06-14 14:11:36 · 389 阅读 · 0 评论 -
后端---Spring-Retry框架介绍和基本开发
Spring-Retry框架介绍和基本开发一、背景介绍 前天是来到公司实习的第五天,之前几天分给我的任务一直都是熟悉项目,阅读项目代码梳理其中某些接口或枚举类之间的关系,并书写文档。直到前天下午组长把我叫来说出了这样一个需求,在我们项目中有一个认证身份证号的service接口,该接口是调用第三方公司的接口,但是第三方公司的接口并不稳定,每天大约有1.5w个返回错误code值200...原创 2019-03-31 21:40:34 · 492 阅读 · 0 评论 -
Java集合:HashMap源码剖析
Java集合:HashMap源码剖析一、HashMap概述二、HashMap的数据结构三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 7、Fail-Fast机制 声明:本博客转自 博客园 h...转载 2018-12-25 22:21:48 · 172 阅读 · 0 评论 -
彻底搞懂hashCode与equals的作用与区别
文章为转载, 原文地址:https://blog.csdn.net/lijiecao0226/article/details/24609559 最近去面试了几家公司,被问到hashCode的作用,虽然回答出来了,但是自己还是对hashCode和equals的作用一知半解的,所以决定把它们研究一下。以前写程序一直没有注意hashCode的作用,一般都是覆盖了equals,缺没有覆盖has...转载 2018-12-25 10:05:32 · 219 阅读 · 0 评论 -
后端---Java中的公平锁和非公平锁实现详解
Java中的公平锁和非公平锁实现详解 在Java中实现锁的方式有两种,一种是使用Java自带的关键字synchronized对相应的类或者方法以及代码块进行加锁,另一种是ReentrantLock,前者只能是非公平锁,而后者是默认非公平但可实现公平的一把锁。ReentrantLock的实现是基于其内部类FairSync(公平锁)和NonFairSync(非公平锁)实现的。 其可重入性是...原创 2018-12-29 19:26:27 · 4061 阅读 · 0 评论 -
后端---Java中的HashSet和TreeSet和LinkedHashSet的区别
Java中的HashSet和TreeSet和LinkedHashSet区别 Set接口与三种实现之间的关系Set是一个不包含重复元素的 collection。无序且唯一。HashSet LinkedHashSet TreeSetHashSet是使用哈希表(hash table)实现的,其中的元素是无序的。HashSet的add、remove、contains方法 的时间复杂...原创 2018-12-24 16:32:41 · 423 阅读 · 0 评论 -
后端---史上最全最小白最简单最细致的Java接入支付宝支付接口方法
昨天Boss在讲项目的业务需求的时候对我突然说让我做一下支付宝微信支付接口这块功能,我的心里是充满问号的????,但是我的嘴却坚定的说出了没问题!!! ???????? 于是开启了我这一天的快乐之旅,在这个无情又寒冷的深夜里将我今天的快乐分享给大家! 哈哈哈哈哈哈,不扯了,我们开始正题! 正题每天早上起来...原创 2018-12-18 22:32:11 · 8245 阅读 · 9 评论 -
后端---Java中ArrayList和LinkedList区别和联系
ArrayList和LinkedList的区别和联系在一个多月之前,我曾写过一篇博客想要迅速简洁的了解Java中所有的集合类型(List、Set、Map),然后一个月多后的我不得已又抱起《Java核心卷I 》仔细研读,这是为什么呢???是因为“温故而知新”还是因为“书读百遍其义自显”????都不是!!!因为我忘完了啊!关于List和Set、Map的博客,这里给出链接 ja...原创 2018-12-24 11:56:50 · 403 阅读 · 0 评论 -
后端---Java线程的6种状态
Java中线程的状态分为6种1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状态...原创 2018-12-02 00:51:15 · 283 阅读 · 0 评论 -
后端---java中堆外内存详解
堆外内存和堆内内存 堆外内存又称为直接内存(Direct Memory)并不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域.一直以来是Javaer们难以关注的一片领域,今天我们就一起探索一下这片区域究竟隐藏着什么东东???? JVM可以使用的内存分外2种:堆内存和堆外内存.我们先看一下我们已经相对来说十分熟悉的堆内内存:Java堆(JAva Hea...原创 2018-11-29 10:21:56 · 1014 阅读 · 1 评论 -
后端---XML文档基础
一:XML基础XML是什么:可扩展的标记语言XML能干什么:描述数据、存储数据、传输(交换)数据。XML与HTML区别:目的不一样XML 被设计用来描述数据,其焦点是数据的内容。HTML 被设计用来展示数据,其焦点是数据的外观。HTML可以不关闭标签(即标签可以不成对出现),但XML必须关闭标签(即标签必须成对出现)。HTML中的标签标识文本如何展示,而XM...原创 2018-11-20 00:52:24 · 423 阅读 · 1 评论 -
后端---java中反射机制的简介
一. 什么是反射JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。二. 反射机制的应用生成动态代理,面向切片编程(在调用方法的前后各加栈帧).三. 反射机制的原理首先明确的概念: 一切皆对象----类也是对象. 然后知道类中的内...原创 2018-10-25 22:05:08 · 123 阅读 · 0 评论 -
后端---java中强弱软虚四种引用,以及用到的场景
1.强引用 以前我们使用的大部分引用实际上都是强引用,这是使用最普遍的引用。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问题。2.软引用(SoftReference) 如果一个对象只具有软引用,那就类...原创 2018-10-23 00:25:51 · 195 阅读 · 0 评论 -
后端---java关于String str=new String("abc");究竟生成几个了几个String对象
String str=new String("abc");首先我们要知道的是这句话生成了两个String对象,一个是new String("abc")在常量池中产生了一个"abc"对象,另外一个对象是在堆中复制了一份字符串池中的"abc",并将这个对象的引用交给str使用,str只是一个引用变量.再了解为什么产生两个String对象之前我嗯先要明白什么是引用变量和对象,对象一般在通过new...原创 2018-10-16 22:12:54 · 272 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer的区别
Java中的String,StringBuilder,StringBuffer三者的区别最近在学习java的过程中,在String字符串中遇到了一些困惑,在我们日常写代码中关于string的应用是经常出现,但是我们经常使用String来定义一个字符串而我们是否真的掌握了String字符串呢,所以我想通过它与,StringBuilder,StringBuffer的对比,对它进行深刻的理解.首...原创 2018-10-15 23:24:58 · 93 阅读 · 0 评论 -
后端---java中的大数值BigInteger和BIgDecimal
大数值基本语法:如果基本的整数和浮点数精度不能满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal实现了任意长度数字序列的数值.BigInteger类实现了任意精度的整数运算.BigDecimal实现了任意精度的浮点数运算.使用静态的valueOf方法可以将普通的数值转换为大数值:BigInteger a=BigInteger....原创 2018-10-15 22:33:47 · 308 阅读 · 0 评论 -
java中List、Set、Map之间的关系
java中关于实现数组有许多种方法,诸如ArrayList,Hashmap,Linklist....此类太多的数组类型实在是让人晕头转向,很难掌握其要点.今天我就带大家来整理一下List,set,map之间的区别和联系:首先说明一下他们之间所有的所属关系:1.Collection接口之下有List和Set两个接口List接口:以特定顺序存储List的实现类:ArrayList...原创 2018-10-17 23:03:40 · 705 阅读 · 0 评论 -
后端---java和js中函数使用值传递和引用传递问题
java和js函数(方法)中的值传递和引用传递问题在讨论这个问题之前我想许多同我一样对java或者js中函数传递方式的问题的程序员们,应该大多数都是之前先学习的c或c++再进入学习java或者js的.首先要给大家明确的是java和js之中没有引用传递只有值传递,应该摒弃之前在c或c++中学习的函数传参方式,但也不能完全摒弃掉,因为java和js简单的基本类型的值传递方式也同c或c++相同....原创 2018-10-05 19:59:37 · 469 阅读 · 0 评论 -
后端--java中数据类型和位运算符
java是一种强类型语言.这就意味着必须为每一个变量声明一种类型.在java中,一共有8种基本类型,其中有4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型. 整型用于表示没有小数部分点的数值,它允许是负数.java提供了4种整型,具体内容如下表所示:数据类型 存储需求 最小值 最大值 Byte...原创 2018-09-27 16:40:57 · 199 阅读 · 0 评论 -
后端---java中object类中有几个方法
首先我们要知道JAVA是一个与C++多根继承机制语言而不同只允许单根继承的语言,并且我们在JAVA中定义的所有类都有一个共同的祖先类Object类 下面我们从java API中一探究竟Method Summary protected Object clone() Creates and returns a copy of this object. ...原创 2018-10-23 21:20:29 · 200 阅读 · 0 评论 -
后端---java中类加载和初始化的顺序
Java语言的哲学:一切都是对象。对于Java虚拟机而言,一个普通的Java类同样是一个对象,那如果是对象,必然有它的初始化过程。一个类在JVM中被实例化成一个对象,需要经历三个过程:加载、链接和初始化。JAVA类的加载 加载:从字节码二进制文件——.class文件将类加载到内存,从而达到类的从硬盘上到内存上的一个迁移,所有的程序必须加载到内存才能工作。一个Java类在被加载到内存后会...原创 2018-10-23 23:00:50 · 159 阅读 · 0 评论 -
后端---java中覆盖和重载的区别
java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?重写跟重载的区别?java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。与此相对,方法覆盖是说子类重新定义了父类的方法。方法覆盖必须有相同的方法名,参数列表和返回类型。覆盖者不会限制它所覆盖的方法的访问。重载(Overloading)(1)方法重载是让类以统一...原创 2018-10-23 23:29:07 · 179 阅读 · 0 评论 -
后端---JAVA解析XML文档的四种方式
XML解析——Java中XML的四种解析方式XML是一种通用的数据交换格式,它的平台无关性、语言无关性、系统无关性、给数据集成与交互带来了极大的方便。XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。 XML的解析方式分为四种:一.DOM解析1、JAXP解析二.SAX解析2、StAX解析;3、JDOM解析;4、DOM4J解析其中前两种属于基础方法,...原创 2018-11-20 00:42:05 · 1220 阅读 · 0 评论 -
后端---JAVA内部类的使用机制
什么叫内部类?关于这个问题官方给出的定义是***************,然而参照"三傻大闹宝莱坞"主角在一次课堂上回答什么是机器,主角回答道机器就是能省力的工具,像头顶的风扇一样......(这不是重点) 由此我们可以回答到内部类就是一个放在类内部的类我们就叫做内部类内部类的作用? 1.内部类可以很好的实现隐藏 一般的非内部类,是不允许有 private 与protected...原创 2018-11-19 23:25:06 · 162 阅读 · 0 评论 -
后端---java中hashmap多线程并发问题详解
HashMap多线程并发问题分析hashmap并发问题的症状:hashmap多线程操作同时调用put()方法后可能导致get()死循环,从而使CPU使用率达到100%,从而使服务器宕机.Java的API文档说HashMap是非线程安全的,应该用ConcurrentHashMap。但是在这里我们可以来研究一下原因。简单代码如下:package com.king.hashmap;...原创 2018-11-21 22:08:49 · 5977 阅读 · 1 评论 -
后端---java中for循环执行顺序
for循环的表达式一般如下:for(表达式1;表达式2;表达式3){ 表达式4;}第一次进入循环先执行表达式1,再执行表达式2进行判断,若成立执行,表达式4,再执行表达式3,一次循环结束。再进入循环,执行表达式2,再执行表达式4,再执行表达式3.给出一个demo大家来看看for循环会怎么执行:public class Text{ static boole...原创 2018-11-21 15:22:21 · 684 阅读 · 0 评论 -
算法---hash算法原理(java中HashMap底层实现原理和源码解析)
散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来訪问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 比如我们要存储八十八个数据,我们为他申请了100个元素的地址空间,80/100=0.88,这个数字叫做负载因子.我们之所以这样做是为了通过牺牲空间来换取时间,达到...原创 2018-11-20 23:51:04 · 985 阅读 · 0 评论 -
后端---java中的反射机制
反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 一、反射的概述JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的...转载 2018-11-14 23:45:43 · 169 阅读 · 0 评论