java
文章平均质量分 58
PazzFJ
持之以恒,不进则退.
展开
-
ArrayList、LinkedList、Vector 分析
ArrayList、LinkedList、Vector 集合对比: 结构 安全 效率 扩容 ArrayList 数组 不安全 增删(慢)查询(快) 1.5倍 LinkedList 链表(双向链表) 不安全 增删(快)查询(慢) 无 Vector 数组 安全 synchronized(慢) ...原创 2018-09-17 14:39:25 · 136 阅读 · 0 评论 -
Spring @Conditional 注解
@Conditional 有条件的注解 当我们希望某个Bean满足了一定的条件才会被创建的时候,我们就可以使用@Conditional注解(Spring 4引入)来实现这种功能。该注解可以用到带有@Bean注解的方法上,如果给定的条件计算结果为true,就会创建这个bean,否则的话,这个bean会被忽略。与这相关的注解有 @ConditionalOnBean(仅仅...原创 2018-08-27 11:17:39 · 200 阅读 · 0 评论 -
SpringBoot @EnableConfigurationProperties 注解
有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类 你可以通过@EnableConfigurationProperties(ConnectionSettings.class)来明确指定需要用哪个实体类来装载配置信息。首先在...原创 2018-08-27 14:09:03 · 1051 阅读 · 1 评论 -
大型网站系统与JAVA中间件实践
一、分布式系统介绍1.1 、初识分布式系统1.1.1、初识分布式系统定义1.1.2、初识分布式系统意义 1.2、分布式系统基础知识1.2.1、组成计算机的五要素1.2.2、线程与进程的执行模式1.2.3、网络通信基础知识1.2.4、如何把应用单机扩展到分布式1.2.5、分布式系统的难点二、大型网站及其架构演进过程2.1、什么是大型网站 2.2、大型网站的架...原创 2018-08-29 11:00:48 · 464 阅读 · 0 评论 -
java &
& 位与运算符运算规则:两个数都转为二进制,然后从高位开始比较,如果两个数都为1则为 1,否则为 0。比如:12 & 5 12转换成二进制就是1100,5转换成二进制就是0101。 从高位开始比较得到,得到0100,即 4。比较法:位序比较同为1的就为1,不为1的就为0;得到0100 是个二进制的数 在转成十进制 即 4。 案例:22 & 71...原创 2018-05-16 00:32:16 · 184 阅读 · 0 评论 -
Java System.arraycopy()方法详解
//src源数组 srcPos复制起始位置 dest目的数组 destPos放置起始位置 length复制长度System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);实例:String[] one = new String[]{"aa", "bb", "cc", "dd"};...原创 2018-09-13 16:11:18 · 289 阅读 · 0 评论 -
StringBuilder,StringBuffer二者的区别
1:StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对String的改变都 会引发新的String对象的生成;StringBuffer则是可变类,任何对它所指代的字符串的改变都不会产生新的对象。2: HashTable是线程安全的,很多方法都是synchronized方法,而HashMap不是线程安全的,但其在单线程程序中...原创 2018-08-01 11:03:40 · 165 阅读 · 0 评论 -
Optional JDK1.8新特性值
在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行一 些防御式的检查,所以在代码中常常可见if(obj != null) 这样的判断。幸好在JDK1.8中,java为我们提供了 一个Optional类,Optional类能让我们省掉繁琐的非空的判断。下面先说一下Optional中为我们提供的方法 方法 描述...原创 2018-08-01 10:59:20 · 707 阅读 · 0 评论 -
@SuppressWarnings("unchecked") 注解
执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 一点背景:J2SE 5.0 为 Java 语言增加了几个新的特性,并且和它们一起增加了许多新的警告并承诺在将来增加更多的警告。您可以为 “ja...原创 2018-08-01 10:34:58 · 1849 阅读 · 0 评论 -
happens-before 原则
一、happens-before规则 我们编写的程序都要经过优化后(编译器和处理器会对我们的程序进行优化以提高运行效率)才会被运行,优化分为很多种,其中有一种优化叫做重排序,重排序需要遵守happens-before规则,不能说你想怎么排就怎么排,如果那样岂不是乱了套。happens-before部分规则如下:1、程序顺序规则:一个线程中的每个操作happens-before于该线程中的...原创 2018-07-11 11:09:59 · 445 阅读 · 0 评论 -
深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)
关于深入理解 Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)深入理解 Java 8 Lambda(类库篇——Streams API,Collector 和并行)深入理解 Java 8 Lambda(原理篇——Java 编译器如何处理 lambda)本文是深入理解 Java 8 Lambda 系列的第二篇,主要介绍 Java 8 针对新增语言特性而...原创 2018-07-16 23:06:09 · 254 阅读 · 0 评论 -
springboot 依赖管理
完成不同需求的Spring应用构建,Spring Boot提供了多种不同的依赖管理模板,每种模板均为一系列已完成的依赖的管理。例如如需要构建web项目,我们只需添加spring-boot-starter-web的依赖即可,它会将你所需的其他依赖导入到你的工程中。官方称之为“物料清单”(Bills of Materials),也因此在使用时我们需要构建工具的支持,如Maven或者Gradle等。...原创 2018-07-09 11:05:05 · 2390 阅读 · 0 评论 -
SpringCloud Eureka
spring-cloud-eureka本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:一、注册Eureka-Server服务添加依赖 spring-cloud-starter-eureka-server spring-boot-starter-security (添加密码配置)启动类添加注解@EnableEurekaServer配置app原创 2017-12-18 21:59:53 · 211 阅读 · 0 评论 -
微服务和集群搭建
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。 Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务...原创 2017-11-30 19:03:17 · 216 阅读 · 0 评论 -
进制转换
一、十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。 二、二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。三、二进制转八进制方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。(具体用法如下图)...原创 2018-03-29 10:36:33 · 392 阅读 · 0 评论 -
char字符对应的ASCII码值
ASCII码值 字符 Char("32") 空格 SPACE Char("33") ! Char("34") " Char("35") # Char("36") $ Char("37") % Char("38") & Char("39")原创 2018-10-11 10:03:53 · 27685 阅读 · 1 评论 -
Java 操作符
操作符 描述 例子 & 如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100 | 如果相对应位都是0,则结果为0,否则为1 (A | B)得到61,即 0011 1101 ...原创 2018-10-29 15:46:19 · 205 阅读 · 0 评论 -
Java HashMap 源码浅入
get() 分析先分析 hash(Object key)方法:1、(key的哈希值)异或(哈希值 按位右移16)得到哈希值获取到哈希值,在调用 getNode(int hash, Object key)方法:2、 // 根据key得到hash值 static final int hash(Object key) { int h; return (...原创 2019-07-11 22:04:35 · 129 阅读 · 0 评论 -
http 状态码
502 Bad Gateway:tomcat没有启动起来504 Gateway Time-out: nginx报出来的错误,一般是nginx做为反向代理服务器的时候,所连接的应用服务器譬如tomcat无相应导致的302(临时移动) 服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求,302响应时,临时URL通过Location 字段返回给客户端。304(未修改)...翻译 2019-06-04 11:27:47 · 444 阅读 · 0 评论 -
Java NIO(三)阻塞与非阻塞
阻塞与非阻塞阻塞 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当服务器端需要处理大量客户端时,性能急剧下降。非阻塞 Java NIO 是非阻塞模...原创 2018-12-16 12:56:37 · 229 阅读 · 0 评论 -
Java NIO(二)通道Channel
一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channels.Channel 接口: |--FileChannel:用于读取、写入、映射和操作文件的通道。 |--SocketChan...原创 2018-12-16 12:45:22 · 1245 阅读 · 0 评论 -
Java NIO(一)缓冲区Buffer
Java NIO全称Java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(Boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。下表总结了Java IO和NIO之间的主要区别:IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 ...原创 2018-12-16 12:31:02 · 214 阅读 · 0 评论 -
applicationContext.findAnnotationOnBean();
ApplicationContext ==>> ListableBeanFactory ==>> BeanFactoryListableBeanFactory 接口有个findAnnotationOnBean(String beanName, Class<A> annotationType)方法/** * 在指定的bean上找到{@code ann...原创 2018-12-04 09:32:57 · 1562 阅读 · 0 评论 -
Class 之 isAssignableFrom()方法
class类的 isAssignableFrom() 是个不常用的方法,感觉这个方法的名字取得不是很好,所以有必要在此解析一下,以免在看源码时产生歧义,这个方法的签名如下:public native boolean isAssignableFrom(Class<?> cls);由方法签名可见是一个本地方法,即C代码编写的。以下是JDK中的注释:Determines i...原创 2018-12-03 17:01:11 · 519 阅读 · 0 评论 -
SpringBoot @ConditionalOnProperty 注解
发现了Spring boot中有个注解@ConditionalOnProperty,这个注解能够控制某个configuration是否生效。具体操作是通过其两个属性name以及havingValue来实现的,其中name用来从application.properties中读取某个属性值,如果该值为空,则返回false;如果值不为空,则将该值与havingValue指定的值进行比较,如果一样则返回t...原创 2018-11-20 15:14:02 · 893 阅读 · 0 评论 -
Maven dependencyManagement含义
1.在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。2.pom.xml文件中,jar的版本判断的两种途径1:如果dependencies里的dependency自己没有声明version元素,那么maven就会倒dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如...原创 2018-11-03 09:39:41 · 204 阅读 · 0 评论 -
数据库分库分表(sharding)拆分实施策略和示例演示
本文原文连接: http://blog.csdn.net/bluishglc/article/details/7696085 ,转载请注明出处!本文着重介绍sharding切分策略,如果你对数据库sharding缺少基本的了解,请参考我另一篇从基础理论全面介绍sharding的文章:数据库Sharding的基本思想和切分策略第一部分:实施策略原创 2017-11-30 15:32:04 · 467 阅读 · 0 评论 -
Java Synchronized
引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。术语定义 术语 英文 说明 CAS ...原创 2018-07-09 10:26:36 · 131 阅读 · 0 评论 -
java作用域public ,private ,protected 及不写时的区别
在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。 1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 2、private:private表示私有,私有的意思就是除了class自己原创 2018-01-20 15:50:25 · 261 阅读 · 0 评论 -
面向对象编程的基本理念与核心设计思想
解释下多态性(polymorphism),封装性(encapsulation),内聚(cohesion)以及耦合(coupling)。继承(Inheritance)与聚合(Aggregation)的区别在哪里。你是如何理解干净的代码(Clean Code)与技术负债(Technical Debt)的。描述下常用的重构技巧。阐述下 SOLID原则。其他的譬如转载 2017-10-17 22:30:06 · 1968 阅读 · 0 评论 -
JAVA中堆与栈的区别
简单的说: Java把内存划分成两种:一种是栈内存,一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。 在堆中分配的内存,由Java虚拟...转载 2018-01-28 11:15:04 · 153 阅读 · 0 评论 -
公钥与私钥,HTTPS详解
1.公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。4)鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。5)鲍勃给苏珊回信,转载 2017-11-28 21:39:19 · 26184 阅读 · 10 评论 -
数字证书原理
转载地址: http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现转载 2017-11-28 21:24:25 · 171 阅读 · 0 评论 -
SpringBoot四大神器之Actuator
序Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator,本文主要讲actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。使用actuator添加依赖 dependency>转载 2017-11-14 04:08:51 · 319 阅读 · 0 评论 -
20个非常有用的Java程序片段
下面是20个非常有用的Java程序片段,希望能对你有用。1. 字符串有整型的相互转换String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int2. 向文件末尾添加内容BufferedWriter ou转载 2017-10-15 17:14:31 · 199 阅读 · 0 评论 -
程序员如何高效学习(以 Java 为例)
文章的整体思路这篇文章大体上会从以下几个部分展开:认清自己。学习目的。时间管理。学习方法。学习的步骤。获取知识的途径影响学习的几个因素自己的心态。外物的影响。其他想说的大学生的学习一些感悟一、认清自己转载 2017-10-15 11:41:18 · 7378 阅读 · 15 评论 -
Java高级架构师系统进阶线路
http://geek.csdn.net/news/detail/239899转载 2017-10-14 23:42:40 · 365 阅读 · 0 评论 -
Java 使用 jdbc 连接 mysql
一、引入依赖http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38二、创建一个DBHelp类package com.pazz.java;import java.sql.*;public class DBHelper { private static final String classNa...原创 2017-09-20 10:23:52 · 803 阅读 · 0 评论 -
java的动态代理机制祥解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或原创 2017-02-26 02:29:40 · 188 阅读 · 0 评论 -
Hibernate复习之Hibernate基本介绍
众所周知,目前流行的面向对象的对象关系映射的Java持久层框架有MyBatis和hibernate,他们都是对象关系映射ORM, 解决的主要问题就是对象-关系的映射,域模型和关系模型都分别建立在概念模型的基础上,域模型是面向对象的,关系模型是面向关系的,一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录。 (可能存在类中多个属性对应一列的情况,映射组成关系), ORM中间件采转载 2017-02-21 18:52:33 · 264 阅读 · 0 评论