java
javaQQ群 866865133
个人爱好,自学Java4年
展开
-
连引用都答不上,凭什么说你是Java服务端开发
干货点】看完该篇文章,就基本可以解答面试热点【谈谈对Java中几种引用的理解】了。经常会有朋友找我吹水,最近就说到了一个面试题谈谈对Java中几种引用的理解。因此打算以该面试题为例子,写篇文章说说在Java中引用是什么以及怎么用。【划重点:给你三秒钟时间思考,如果是你,该如何回答面试官的这个问题呢】引用是什么【划重点】在Java中引用包括:FinalReference ...原创 2019-06-25 15:02:33 · 129 阅读 · 0 评论 -
Spring框架——简易入门
介绍 Spring框架是个轻量级的Java EE框架。所谓轻量级,是指不依赖于容器就能运行的。Struts、Hibernate也是轻量级的。 轻量级框架是相对于重量级框架而言的,重量级框架必须依赖特定的容器,例如EJB框架就必须运行在Glassfish、JBoss等支持EJB的容器中,而不能运行在Tomcat中。——《Java Web整合开发 王者归来》 Spring以IoC、A...原创 2019-06-28 17:16:20 · 122 阅读 · 0 评论 -
解决99%的Spring 核心框架问题
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的!spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他jar,所...转载 2019-06-28 20:15:34 · 140 阅读 · 0 评论 -
Java SSM框架基础面试题
一、Spring面试题1、Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成。 两大核心: 1、IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory。 2、AOP:面向切面编程 2、Sprin...原创 2019-07-04 14:46:32 · 135 阅读 · 0 评论 -
深入理解 Spring 事务原理
一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection() 开启事务con.setAutoCommit(true/false); 执行CRUD 提交事务/回...原创 2019-07-10 14:54:56 · 134 阅读 · 0 评论 -
认识一下什么是JVM
说明:做java开发的几乎都知道jvm这个名词,但是由于jvm对实际的简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是jvm,以及弄清楚jvm的工作原理,个人认为这块还是非常有必要去认真了解及学习的,特别是刚入门或入门不久的java开发来说,这是java的基石。JVM(Java Virtual Machine,Ja...原创 2019-06-30 14:17:07 · 152 阅读 · 0 评论 -
Spring AOP的实现原理
AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring A...原创 2019-06-30 15:56:29 · 132 阅读 · 0 评论 -
如何去除Nginx代理的proxy pass配置前缀
目录一个种方案是proxy_pass后面加根路径/.另一种方案是使用rewrite使用Nginx做代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。比如,访问abc.com/appv2/a/b.html, 要求转发到localhost:8088/appv2/a/b.html简单配置如下:upstream one { server localhost:808...原创 2019-07-05 15:36:34 · 13020 阅读 · 0 评论 -
一文看懂 Redis 的持久化
Redis 一共有 2 种持久化方式,分别是 RDB 和 AOF,下面我来详细介绍两种方式在各个过程所做的事情,特点等等。1. RDB持久化RDB 持久化是 Redis 默认的持久化方式。它所生成的 RDB 文件是一个压缩的二进制文件,通过该文件可以还原生成 RDB 文件时的数据库状态PS:数据库状态是指 Redis 服务器的非空数据库以及他们键值对的统称1.1 RDB文件的创...原创 2019-06-30 20:13:30 · 203 阅读 · 0 评论 -
成为java高手一条进阶之路
本文将告诉你学习Java需要达到的25个目标,希望能够对你的学习及找工作有所帮助。对比一下自己,你已经掌握了这25条中的多少 条了呢?1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该了解UML,尤其是 class,object,interaction以及statediagrams。2.你需要学习Java语言的基础知识以及它的核心类库 ...原创 2019-07-05 21:37:57 · 139 阅读 · 0 评论 -
GC对JVM有什么用啊
先需要理解为什么需要GC。随着应用程序所应对的业务越来越庞大、复杂,用户越来越多,没有GC就不能保证应用程序正常进行。而经常造成STW的GC又跟不上实际的需求,所以才会不断地尝试对GC进行优化JVM是否一定需要GC?首先需要理解为什么需要GC。随着应用程序所应对的业务越来越庞大、复杂,用户越来越多,没有GC就不能保证应用程序正常进行。而经常造成STW的GC又跟不...转载 2019-07-11 14:22:05 · 183 阅读 · 0 评论 -
Java内存模型深度解读
Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。如果你想设计表现良好的并发程序,理解Java内存模型是非常重要的。Java内存模型规定了如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。原始的Java内存模型存在一些不足,因此Ja...原创 2019-07-11 15:51:39 · 136 阅读 · 0 评论 -
Linkedlist就是这么简单
一. 概述LinkedList 是 Java 集合中比较常用的数据结构,与 ArrayList 一样,实现了 List 接口,只不过 ArrayList 是基于数组实现的,而 LinkedList 是基于链表实现的。所以 LinkedList 插入和删除方面要优于 ArrayList,而随机访问上则 ArrayList 性能更好。除了 LIst 接口之外,LinkedList 还实现了...原创 2019-07-06 14:52:10 · 142 阅读 · 0 评论 -
使用Docker的15个小技巧!
Tip1获取最近运行容器的id 这是我们经常会用到的一个操作,按照官方示例,你可以这样做(环境ubuntu):$ ID=$(docker run ubuntu echo hello world)hello world$ docker commit $ID helloworldfd08a884dc79这种方式在编写脚本的时候很有用,比如你想在脚本中批量获取id,然后进一步操作。但...原创 2019-06-28 15:06:38 · 166 阅读 · 0 评论 -
你知道成为一名成功的程序员需要做什么吗?
编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子。编程是一个没有极限的职业,所以要成为一个成功的程序员,你必须超越现有已存在的极限。在程序员职业生涯的开始阶段,他们将面临许多挑战,面对困境,他们之中有一些人将会放弃,而只有少数人会坚持到底,并成为这个领域的领头羊。...原创 2019-07-09 14:48:47 · 184 阅读 · 0 评论 -
Spring4+SpringMVC+MyBatis整合思路
本文主要简单讲解框架整合的思路。1、Spring框架的搭建这个很简单,只需要web容器中注册org.springframework.web.context.ContextLoaderListener,并指定spring加载配置文件,那么spring容器搭建完成。(当然org.springframework的核心jar包需要引入)当然为了更加易用支持J2EE应用,一般我们还会加上如...原创 2019-07-03 19:08:12 · 127 阅读 · 0 评论 -
Java程序员怎么规划五年职业生涯
每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天我给大家分享的是一篇程序员的职业建议,希望对你们有启发。第一阶段:Java程序员Java初级程序员第一阶段我认为对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的...原创 2019-06-25 17:47:41 · 2291 阅读 · 0 评论 -
想成为顶尖 Java 程序员?先过了下面这些问题!
一、数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 用Java写一个冒泡排序算法 描述一下链式存储结构。 如何遍历一棵二叉树? 倒排一个LinkedList。 用Java写一个递归遍历目录下面的所有文件。 二、Java基础 接口与抽象类的区别? Java中的异常有哪几类?分别怎么使用? 常用的集合类...原创 2019-06-26 15:07:11 · 122 阅读 · 0 评论 -
快速理解Docker容器
在容器技术没有出来之前,开发运维在进行交付的时候经常出现,开发环境执行正常,生产环境部署运行出现问题,很多原因就是因为环境导致。还有部署环境太过于复杂,交付成本太高。容器技术的出现就像工业的集装箱技术,大大提高了交付效率。一、容器核心技术一谈到容器,我们都会想到 Docker。Docker 现在几乎是容器的代名词。确实,是 Docker 将容器技术发扬光大。同时,我们也需要...原创 2019-06-26 16:13:47 · 136 阅读 · 0 评论 -
Spring学习指南
Spring 框架早已成为 Java 后端开发事实上的行业标准,如何用好 Spring ,也就成为 Java 程序员的必修课之一。同时,Spring Boot 和 Spring Cloud 的出现,可以帮助工程师更好地基于 Spring 框架及各种基础设施来快速搭建系统,可以说,它们的诞生又一次解放了大家的生产力。所以,Spring Boot 和 Spring Cloud 已成为 Spri...转载 2019-06-26 20:28:48 · 351 阅读 · 0 评论 -
Redis单线程架构
Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。引出单线程模型开启三个redis-cli客户端同时执行命令:1、客户端1设置一个字符串键值对:2、客户端2对counter自增操作:3、客户端3对counter自增操作:redis客户端与服务端的模型可以简化成图(如下图所示),每次客户端调用都经历了发送命令、执行命令和返回结果三个过程。...原创 2019-07-02 15:04:41 · 286 阅读 · 0 评论 -
用两道面试题带你详细了解 Java 类加载机制
在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题:class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} class Father extends Grandpa{ static { ...原创 2019-07-08 14:55:59 · 153 阅读 · 0 评论 -
【SpringBoot专题】多环境配置及swagger
多环境配置分析在实际开发中,我们可能会涉及到一些环境,比如local(本地开发环境),dev(部署到远程的开发环境),test(预发布环境),product(生产环境)。显然,不同的环境下,对应不同的配置信息,比如db/redis/mq等,甚至不同的环境下,程序需要做不同的处理。那么springboot项目是如何支持多环境配置的呢?首先来说,springboot就是一个可执行程序,通过ja...原创 2019-07-02 19:21:14 · 285 阅读 · 0 评论 -
Servlet的运行原理
在JavaWeb学习研究中,Servlet扮演重要的作用,学好它,是后续JavaWeb学习的良好基础。无论是SSH,还是SSM,微服务JavaWeb技术,都应先学好Servlet,从而达到事半功倍的效果,本篇将主要分析Servlet的运行原理。一、UML下图为Servlet UML关系图。从图中,可以看出:1. 抽象类HttpServlet继承抽象类Generic...转载 2019-06-27 14:17:32 · 232 阅读 · 0 评论 -
为什么那些大牛使用 MySQL这么简单
Mysql 数据库是被广泛应用的关系型数据库,其体积小、支持多处理器、开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高。在使用 Mysql的过程中不规范的 SQL 编写、非最优的策略选择都可能导致系统性能甚至功能上的缺陷。恰巧就在前几天,本人所在公司的云事业部举办了一场关于 Mysql 的技术交流会,其中一个 part 正是聚焦于开发过程中 Mysql 数据库设计及使用的...原创 2019-07-08 21:06:36 · 227 阅读 · 0 评论 -
探究Java虚拟机栈
前言Java 虚拟机的内存模型分为两部分:一部分是线程共享的,包括 Java 堆和方法区;另一部分是线程私有的,包括虚拟机栈和本地方法栈,以及程序计数器这一小部分内存。今天我就 Java 虚拟机栈做一些比较浅的探究。熟悉 Java 的同学应该都知道了,JVM 是基于栈的。但是这个“栈” 具体指的是什么?难道就是虚拟机栈?想要回答这个问题我们先要从虚拟机栈的结构谈起。虚拟机栈何为虚拟...转载 2019-07-03 14:38:44 · 116 阅读 · 0 评论 -
29 道 Spring 常见面试问题!
以下为 29道 Spring 常见面试问题:1、什么是Spring框架?Spring框架有哪些主要模块?2、使用Spring框架能带来哪些好处?3、什么是控制反转(IOC)?什么是依赖注入?4、请解释下Spring框架中的IoC?5、BeanFactory和ApplicationContext有什么区别?6、Spring有几种配置方式?7、如何用基于XML配置的...转载 2019-06-27 21:40:45 · 132 阅读 · 0 评论 -
关于线程池你必须要知道的一些设置
初始化线程池时可以预先创建线程吗?线程池的核心线程可以被回收吗?为什么?在ThreadPoolExecutor线程池中,还有一些不常用的设置。我建议如果您在应用场景中没有特殊的要求,就不需要使用这些设置。初始化线程池时可以预先创建线程吗?prestartAllCoreThreads初始化线程池时是可以预先创建线程的,初始化线程池后,再调用prestartAllCor...原创 2019-07-06 21:43:18 · 287 阅读 · 0 评论