11 2019 档案

摘要:出处: Java编码技巧之高效代码50例 1.常量&变量 1.1.直接赋值常量值,禁止声明新对象 直接赋值常量值,只是创建了一个对象引用,而这个对象引用指向常量值。 反例: 正例: 1.2.当成员变量值无需改变时,尽量定义为静态常量 在类的每个对象实例中,每个成员变量都有一份副本,而成员静态常量只有 阅读全文
posted @ 2019-11-30 23:24 myseries 阅读(2124) 评论(0) 推荐(2) 编辑
摘要:出处: java new一个对象的过程中发生了什么 java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。 我们先假设是第一次使用该类,这样的话new一个对象就可以分为两个过程:加载并初始化类和 阅读全文
posted @ 2019-11-30 23:21 myseries 阅读(1183) 评论(0) 推荐(0) 编辑
摘要:出处: java如何防止反编译 一些防止java代码被反编译的方法 综述(写在前面的废话) Java从诞生以来,其基因就是开放精神,也正因此,其可以得到广泛爱好者的支持和奉献,最终很快发展壮大,以至于有今天之风光!但随着java的应用领域越来越广,特别是一些功能要发布到终端用户手中(如Android 阅读全文
posted @ 2019-11-29 18:38 myseries 阅读(12641) 评论(0) 推荐(0) 编辑
摘要:出处:运用加密技术保护Java源代码 为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取,但与此同时,它也使通 阅读全文
posted @ 2019-11-29 18:26 myseries 阅读(698) 评论(0) 推荐(0) 编辑
摘要:java通过jedis操作redis(从JedisPool到JedisCluster) redis作为一个缓存数据库,在绝大多数java项目开发中是必须使用的,在web项目中,直接配合spring-redis,各种配置都直接在spring配置文件中做了,一般都是使用redis连接池。在非web项目中 阅读全文
posted @ 2019-11-27 22:24 myseries 阅读(1034) 评论(0) 推荐(0) 编辑
摘要:出处: redis主从复制和哨兵 Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式 一、Redis主从复制 主从复制:主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性 1. 主从复制的相关操作 a,配置主从复制方式一、新增redis6380. 阅读全文
posted @ 2019-11-27 22:23 myseries 阅读(871) 评论(0) 推荐(1) 编辑
摘要:出处: Java Volatile关键字 Java的volatile关键字用于标记一个变量“应当存储在主存”。更确切地说,每次读取volatile变量,都应该从主存读取,而不是从CPU缓存读取。每次写入一个volatile变量,应该写到主存中,而不是仅仅写到CPU缓存。 实际上,从Java 5开始, 阅读全文
posted @ 2019-11-26 22:52 myseries 阅读(329) 评论(0) 推荐(1) 编辑
摘要:出处:序列化和反序列化的底层实现原理是什么? 一、基本概念1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程; (2)**序列化:**对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可 阅读全文
posted @ 2019-11-25 22:56 myseries 阅读(3391) 评论(1) 推荐(4) 编辑
摘要:1. Redis服务端是个单线程的架构,不同的Client虽然看似可以同时保持连接,但发出去的命令是序列化执行的,这在通常的数据库理论下是最高级别的隔离2. 用MULTI/EXEC 来把多个命令组装成一次发送,达到原子性(有点像命令具有打包功能)3. 用WATCH提供的乐观锁功能,在你EXEC的那一 阅读全文
posted @ 2019-11-24 22:11 myseries 阅读(4530) 评论(0) 推荐(1) 编辑
摘要:出处: 一文读懂什么是Java中的自动拆装箱 本文主要介绍Java中的自动拆箱与自动装箱的有关知识。 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型。它们是我们编程中使用最频繁的类型。 Java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称 阅读全文
posted @ 2019-11-22 21:57 myseries 阅读(380) 评论(0) 推荐(0) 编辑
摘要:1.SETBIT key offset value 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 在redis中,存储的字符串都是以二级制的进行存在的。 举例: 设置一个 key-value ,键的名字叫“andy” 值为字符'a' 我们知道 'a' 的ASCII码是 97。 阅读全文
posted @ 2019-11-21 23:16 myseries 阅读(3016) 评论(1) 推荐(0) 编辑
摘要:其实,高并发并不神秘,说白了就是想办法搞定两个指标:提升QPS(Query Per Second,每秒查询率 ,每秒的响应请求数,也即是最大吞吐能力)、降低RT(响应时间,系统对请求作出响应的时间(一次请求耗时))。并且同时保证数据的正确性、系统的可用性就OK了。 1、网站并发量上来了?啥都不要管, 阅读全文
posted @ 2019-11-21 14:49 myseries 阅读(454) 评论(0) 推荐(0) 编辑
摘要:问题:秒杀页面中如果商品秒杀链接要是提前暴露出去可能有人直接访问url就提前秒杀了 解决:做个时间校验不就可以解决了吗?没到秒杀时间不给秒杀。这种方案也存在问题,既然我知道了秒杀请求链接,那我通过程序不断获取最新的北京时间,可以达到毫秒级别的,我就在00毫秒的时候请求,我敢说绝对比你人工点的成功率大 阅读全文
posted @ 2019-11-19 17:59 myseries 阅读(7010) 评论(4) 推荐(2) 编辑
摘要:出处: 使用Redis完成定时任务 场景 使用Java做过项目的人大概都用过定时器。一般来说,项目里订单模块和评论模块,都会涉及到定时任务执行。比如说: 用户下订单后,需要在5分钟内完成支付,否则订单关闭; 用户在完成订单后,如果没有评论,过一星期,系统自动评论,并完结。 我以前曾经做过一个租车系统 阅读全文
posted @ 2019-11-19 16:09 myseries 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。是当前最主流的消息中间件之一。 RabbitMQ的官方 概念: Brocker:消息队列服务器实体 阅读全文
posted @ 2019-11-19 15:48 myseries 阅读(184) 评论(0) 推荐(0) 编辑
摘要:出处: 多账户的统一登录 名称解释 这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易、微信、QQ 内容 通过这一篇文章, 可以学到:多用户下面的技术方案细节,以及相应的表设计,流程 阅读全文
posted @ 2019-11-17 20:28 myseries 阅读(613) 评论(0) 推荐(0) 编辑
摘要:出处: 某小公司RESTful、共用接口、前后端分离、接口约定的实践 前言 随着互联网高速发展,公司对项目开发周期不断缩短,我们面对各种需求,使用原有对接方式,各端已经很难快速应对各种需求,更难以提高效率。于是,我们不得不重新制定对接规范、开发逻辑以便快速上线项目。 我们的目标 尽可能的缩小沟通的成 阅读全文
posted @ 2019-11-16 11:16 myseries 阅读(1243) 评论(0) 推荐(0) 编辑
摘要:出处: java:线上问题排查常用手段 一、jmap找出占用内存较大的实例 先给个示例代码: List中放了1w个Person对象的实例,先把这段程序跑起来 javac OOMTest.java java OOMTest 然后再开一个窗口,jps -l 找出该程序的pid 然后执行 jmap -hi 阅读全文
posted @ 2019-11-14 09:40 myseries 阅读(383) 评论(0) 推荐(0) 编辑
摘要:出处: Java回调实现异步 在正常的业务中使用同步线程,如果服务器每处理一个请求,就创建一个线程的话,会对服务器的资源造成浪费。因为这些线程可能会浪费时间在等待网络传输,等待数据库连接等其他事情上,真正处理业务逻辑的时间很短很短,但是其他线程在线程池满了之后又会阻塞,等待前面的线程处理完成。而且, 阅读全文
posted @ 2019-11-13 17:30 myseries 阅读(2384) 评论(0) 推荐(0) 编辑
摘要:1:Java面试突击 阅读全文
posted @ 2019-11-12 19:50 myseries 阅读(214) 评论(0) 推荐(0) 编辑
摘要:出处: JDK 监控和故障处理工具总结 JDK 监控和故障处理工具总结 JDK 命令行工具 jps:查看所有 Java 进程 jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数 jmap:生成堆转储快照 jhat: 分析 heapdump 文件 jstack :生 阅读全文
posted @ 2019-11-12 19:31 myseries 阅读(409) 评论(0) 推荐(0) 编辑
摘要:1,Propagation.REQUIRED 如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。详细解释在代码下方。 实例 员工service @Service public class EmployeeServiceImpl implements EmployeeServ 阅读全文
posted @ 2019-11-12 09:29 myseries 阅读(349) 评论(0) 推荐(0) 编辑
摘要:出处: 谁能用通俗的语言解释一下什么是 RPC 框架? 知乎: 问题:了解到最近 Java 的 Netty 很火,只知道它是这样类型的一种框架。想了解一下它主要用于解决了什么问题?适用于什么样的场景? 答: 关于RPC 你的题目是RPC框架,首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调 阅读全文
posted @ 2019-11-09 15:40 myseries 阅读(284) 评论(0) 推荐(0) 编辑
摘要:主要区别 1. 锁机制不一样:synchronized是java内置关键字,是在JVM层面实现的,系统会监控锁的释放与否,lock是JDK代码实现的,需要手动释放,在finally块中释放。可以采用非阻塞的方式获取锁; 2. 性能不一样:资源竞争激励的情况下,lock性能会比synchronize好 阅读全文
posted @ 2019-11-09 10:59 myseries 阅读(3859) 评论(0) 推荐(0) 编辑
摘要:出处文章: Java基础篇 - 强引用、弱引用、软引用和虚引用 谈谈Java对象的强引用,软引用,弱引用,虚引用分别是什么 整体结构 java提供了4中引用类型,在垃圾回收的时候,都有自己的各自特点。 为什么要区分这么多引用呢,其实这和Java的GC有密切关系。 强引用(默认支持模式) 把一个对象赋 阅读全文
posted @ 2019-11-08 23:55 myseries 阅读(707) 评论(0) 推荐(0) 编辑
摘要:出处: SpringMVC实现全局异常处理器 我们知道,系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中,不管是dao层、service层还是controller层,都有可能 阅读全文
posted @ 2019-11-08 15:54 myseries 阅读(2257) 评论(0) 推荐(0) 编辑
摘要:出处: 【深入理解JVM】类加载器与双亲委派模型 加载类的开放性 类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Jav 阅读全文
posted @ 2019-11-07 16:13 myseries 阅读(285) 评论(0) 推荐(1) 编辑
摘要:出处: 一千行MySQL学习笔记 阅读全文
posted @ 2019-11-06 21:15 myseries 阅读(377) 评论(0) 推荐(0) 编辑
摘要:问题: 循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图: 如何理解“依赖”呢,在Spring中有: 构造器循环依赖 field属性注入循环依赖 直接上代码: 构造器循环依赖 @Service public cla 阅读全文
posted @ 2019-11-05 19:45 myseries 阅读(9010) 评论(1) 推荐(4) 编辑
摘要:出处: 一步一步带你入门MySQL中的索引和锁 索引 索引常见的几种类型 索引常见的类型有哈希索引,有序数组索引,二叉树索引,跳表等等。本文主要探讨 MySQL 的默认存储引擎 InnoDB 的索引结构。 InnoDB的索引结构 在InnoDB中是通过一种多路搜索树——B+树实现索引结构的。在B+树 阅读全文
posted @ 2019-11-04 11:39 myseries 阅读(434) 评论(0) 推荐(0) 编辑
摘要:问:如何决定使用 HashMap 还是 TreeMap? 介绍 TreeMap<K,V>的Key值是要求实现java.lang.Comparable,所以迭代的时候TreeMap默认是按照Key值升序排序的;TreeMap的实现是基于红黑树结构。适用于按自然顺序或自定义顺序遍历键(key)。 Has 阅读全文
posted @ 2019-11-04 11:13 myseries 阅读(976) 评论(0) 推荐(0) 编辑
摘要:前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢? 首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止 阅读全文
posted @ 2019-11-04 11:04 myseries 阅读(598) 评论(0) 推荐(0) 编辑
摘要:出处: 分布式与集群的区别是什么? 下面就正经解释下三种结构的区别吧~ 单机结构 我想大家最最最熟悉的就是单机结构,一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。 那么,单机结构有啥缺点呢?我想缺 阅读全文
posted @ 2019-11-01 21:48 myseries 阅读(3600) 评论(0) 推荐(1) 编辑
摘要:出处: 可能是把 Java 内存区域讲的最清楚的一篇文章 Java 内存区域详解 写在前面 (常见面试题) 基本问题 拓展问题 一 概述 二 运行时数据区域 2.1 程序计数器 2.2 Java 虚拟机栈 2.3 本地方法栈 2.4 堆 2.5 方法区 2.5.1 方法区和永久代的关系 2.5.2 阅读全文
posted @ 2019-11-01 18:13 myseries 阅读(745) 评论(0) 推荐(0) 编辑
摘要:出处: Jconsole与Jmx 分析JVM状况(下) 线程(ThreadMXBean ) 从 Jconsole 画面取得线程画面如下: 左下角列出了所以正在运行的线程。通过点击某个线程,右下脚可以看到这个线程的相关信息。 Mean 中提供 ThreadMXBean 相关属性和操作如下 详细个属性说 阅读全文
posted @ 2019-11-01 17:20 myseries 阅读(431) 评论(0) 推荐(0) 编辑
摘要:出处:Jconsole与Jmx 分析JVM状况(上) JVM 平台提供 Mbeans 说明 在 Java 2 平台 5.0 以上版本,有一组 API 可以让 Java 应用程序和允许的工具监视和管理 Java 虚拟机( JVM)和虚拟机所在的本机操作系统。该组 API 在 java.lang.man 阅读全文
posted @ 2019-11-01 17:17 myseries 阅读(716) 评论(0) 推荐(0) 编辑
摘要:JMX 1. JMX简单介绍 JMX的全称为Java Management Extensions. 顾名思义,是管理Java的一种扩展。这种机制可以方便的管理正在运行中的Java程序。常用于管理线程,内存,日志Level,服务重启,系统环境等。 JConsole和JVisualVM中能够监控到JAV 阅读全文
posted @ 2019-11-01 17:09 myseries 阅读(2130) 评论(0) 推荐(0) 编辑
摘要:出处: 一步步解析java执行内幕 对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式。在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过程中,都经历了什么?每一步又是怎么执行的?执行原理又是什么?.. 阅读全文
posted @ 2019-11-01 09:26 myseries 阅读(802) 评论(0) 推荐(0) 编辑