自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(250)
  • 收藏
  • 关注

转载 Java虚拟机简介

 1、Oracle Java SE 8 产品组件  通过上面给定的地址,我们可以看到如下这张图:    通常来说 Java平台标准版(Java SE)包括 Java SE开发工具包(JDK)和Java SE运行时环境(JRE)。  JRE提供了运行以Java编程语言编写的applet和应用程序所必需的库,Java虚拟机和其他组件;JDK包括JRE以及编译器和调...

2019-09-10 15:41:00 104

转载 JAVA 用数组实现 ArrayList

 我们知道 ArrayList 是一个集合,它能存放各种不同类型的数据,而且其容量是自动增长的。那么它是怎么实现的呢?  其实 ArrayList 的底层是用 数组实现的。我们查看 JDK 源码也可以发现。而用数组实现集合的原理有两点:  1、能自动扩容  2、能存放不同类型的数据这两点我们是这样解决的:  1、当一个数据存放满了,我们就将这个数据复制到一个新的...

2019-09-10 15:05:00 136

转载 Spring+SpringMVC+Mybatis框架集成搭建教程

一、背景  最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼,网络上又没有很详细的讲解以及搭建的教程。闲来无事,我就利用空闲时间来写这样一个教程和搭建步骤,来帮助那些有问题的小伙伴,让你从此SSM搭建不再有问题。二、教程目录  1...

2019-09-10 14:08:00 74

转载 Java代理

一、概述  代理模式是Java常用的设计模式之一,实现代理模式要求代理类和委托类(被代理的类)具有相同的方法(提供相同的服务),代理类对象自身并不实现真正的核心逻辑,而是通过调用委托类对象的相关方法来处理核心逻辑,而代理类对象主要负责为委托类对象过滤消息、预处理消息、转发消息给委托类、事后处理消息等等。通常代理类会与委托类存在关联关系。  按照代理的创建时期,代理可...

2019-09-10 14:04:00 100

转载 单例模式(三)

一、背景  最近在学习设计模式,在看到单例模式的时候,我一开始以为直接很了解单例模式了,实现起来也很简单,但是实际上单例模式有着好几个变种,并且多线程中涉及到线程安全问题,那么本文我们就来好好聊聊单例模式,说一下经典三种实现方式:饿汉式、懒汉式、登记式。并且解决掉多线程中可能出现的线程安全问题。二、基本概念1.为什么要使用单例模式?  在我们日常的工作中,很...

2019-09-10 13:27:00 115

转载 Node.js安装及环境配置

一、安装环境1、本机系统:Windows 10 Pro(64位)2、Node.js:v6.9.2LTS(64位)二、安装Node.js步骤1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/2、选安装目录进行安装3、环境配置4、测试三、前期准备1、Node.js简介简单的说 Node.js 就是运行在服务端的 J...

2019-09-10 11:37:00 108

转载 Java 并发编程:核心理论(一)

前言.........并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。本系列会从线程间协调的方式(wait、notify、notifyAll)、Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发...

2019-09-09 11:39:00 118

转载 Java 并发编程:volatile的使用及其原理(二)

一、volatile的作用  在《Java并发编程:核心理论》一文中,我们已经提到过可见性、有序性及原子性问题,通常情况下我们可以通过Synchronized关键字来解决这些个问题,不过如果对Synchronized原理有了解的话,应该知道Synchronized是一个比较重量级的操作,对系统的性能有比较大的影响,所以,如果有其他解决方案,我们通常都避免使用Synchronized...

2019-09-09 11:30:00 123

转载 线程间的协作(wait/notify/sleep/yield/join)(五)

一、线程的状态  Java中线程中状态可分为五种:New(新建状态),Runnable(就绪状态),Running(运行状态),Blocked(阻塞状态),Dead(死亡状态)。  New:新建状态,当线程创建完成时为新建状态,即new Thread(...),还没有调用start方法时,线程处于新建状态。  Runnable:就绪状态,当调用线程的的start方法后...

2019-09-09 11:01:00 105

转载 Synchronized底层优化(轻量级锁、偏向锁)(二)

一、重量级锁  上篇文章中向大家介绍了Synchronized的用法及其实现的原理。现在我们应该知道,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,...

2019-09-09 10:53:00 107

转载 Synchronized及其实现原理(一)

一、Synchronized的基本使用  Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:  (1)修饰普通方法  (2)修饰静态方法  ...

2019-09-09 10:45:00 119

转载 Akka系列(十):Akka集群之Akka Cluster

前言...........上一篇文章我们讲了Akka Remote,理解了Akka中的远程通信,其实Akka Cluster可以看成Akka Remote的扩展,由原来的两点变成由多点组成的通信网络,这种模式相信大家都很了解,就是集群,它的优势主要有两点:系统伸缩性高,容错性更好。集群概念很多人很容易把分布式和集群的概念搞错,包括我也是,我一开始也以为它们两个是一样的概...

2019-09-06 17:18:00 362

转载 Akka系列(九):Akka分布式之Akka Remote

前言....Akka作为一个天生用于构建分布式应用的工具,当然提供了用于分布式组件即Akka Remote,那么我们就来看看如何用Akka Remote以及Akka Serialization来构建分布式应用。背景很多同学在程序的开发中都会遇到一个问题,当业务需求变得越来越复杂,单机服务器已经不足以承载相应的请求的时候,我们都会考虑将服务部署到不同的服务器上,但服务器之...

2019-09-06 17:12:00 532

转载 Akka系列(八):Akka persistence设计理念之CQRS

前言........这一篇文章主要是讲解Akka persistence的核心设计理念,也是CQRS(Command Query Responsibility Segregation)架构设计的典型应用,就让我们来看看为什么Akka persistence会采用CQRS架构设计。CQRS很多时候我们在处理高并发的业务需求的时候,往往能把应用层的代码优化的很好,比如缓存,...

2019-09-06 17:05:00 247

转载 Akka系列(七):Actor持久化之Akka persistence

前言..........我们在使用Akka时,会经常遇到一些存储Actor内部状态的场景,在系统正常运行的情况下,我们不需要担心什么,但是当系统出错,比如Actor错误需要重启,或者内存溢出,亦或者整个系统崩溃,如果我们不采取一定的方案的话,在系统重启时Actor的状态就会丢失,这会导致我们丢失一些关键的数据,造成系统数据不一致的问题。Akka作为一款成熟的生产环境应用,为我们...

2019-09-06 17:02:00 323

转载 Akka系列(六):Actor解决了什么问题?

前言.....文档来源于 :What problems does the actor model solve?Actor解决了什么问题?Akka使用Actor模型来克服传统面向对象编程模型的局限性,并应对高并发分布式系统所带来的挑战。 充分理解Actor模型是必需的,它有助于我们认识到传统的编程方法在并发和分布式计算的领域上的不足之处。封装的弊端面向对象编程...

2019-09-06 16:50:00 290

转载 Akka系列(五):Java和Scala中的Future

前言.......随着CPU的核数的增加,异步编程模型在并发领域中的得到了越来越多的应用,由于Scala是一门函数式语言,天然的支持异步编程模型,今天主要来看一下Java和Scala中的Futrue,带你走入异步编程的大门。Future很多同学可能会有疑问,Futrue跟异步编程有什么关系?从Future的表面意思是未来,一个Future对象可以看出一个将来得到的结果,...

2019-09-06 16:39:00 264

转载 Akka系列(四):Akka中的共享内存模型

前言......通过前几篇的学习,相信大家对Akka应该有所了解了,都说解决并发哪家强,JVM上面找Akka,那么Akka到底在解决并发问题上帮我们做了什么呢?共享内存众所周知,在处理并发问题上面,最核心的一部分就是如何处理共享内存,很多时候我们都需要花费很多时间和精力在共享内存上,那么在学习Akka对共享内存是如何管理之前,我们先来看看Java中是怎么处理这个问题的。...

2019-09-06 16:15:00 212

转载 Akka系列(三):监管与容错

前言......Akka作为一种成熟的生产环境并发解决方案,必须拥有一套完善的错误异常处理机制,本文主要讲讲Akka中的监管和容错。监管看过我上篇文章的同学应该对Actor系统的工作流程有了一定的了解Akka系列(二):Akka中的Actor系统,它的很重要的概念就是分而治之,既然我们把任务分配给Actor去执行,那么我们必须去监管相应的Actor,当Actor出现了...

2019-09-06 15:53:00 172

转载 Akka系列(二):Akka中的Actor系统

前言.........Actor模型作为Akka中最核心的概念,所以Actor在Akka中的组织结构是至关重要,本文主要介绍Akka中Actor系统。1.Actor系统Actor作为一种封装状态和行为的对象,总是需要一个系统去统一的组织和管理它们,在Akka中即为ActorSystem,其实这非常容易理解,好比一个公司,每个员工都可以看成一个Actor,它们有自己的职位...

2019-09-06 15:35:00 308

转载 Akka简介与Actor模型(一)

Akka是一个构建在JVM上,基于Actor模型的的并发框架,为构建伸缩性强,有弹性的响应式并发应用提高更好的平台。本文主要是个人对Akka的学习和应用中的一些理解。Actor模型Akka的核心就是Actor,所以不得不说Actor,Actor模型我通俗的举个例子,假定现实中的两个人,他们只知道对方的地址,他们想要交流,给对方传递信息,但是又没有手机,电话,网络之类的其他途...

2019-09-06 15:08:00 146

转载 java 重写的 几大注意点

Single Dispatchclass Parent { void print(String a) { log.info("Parent - String"); } void print(Object a) { log.info("Parent - Object"); }} class Child extends Parent { void pri...

2019-09-05 17:35:00 132

转载 Java代码是怎么运行的

前言....作为一名 Java 程序员,你应该知道,Java 代码有很多种不同的运行方式。比如说可以在开发工具中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至可以在网页中运行。当然,这些执行方式都离不开 JRE,也就是 Java 运行时环境。实际上,JRE 仅包含运行 Java 程序的必需组件,包括 Java 虚拟机以及 Java 核心类库等。我们 Java ...

2019-09-05 14:18:00 111

转载 Linux各目录及每个目录的详细介绍

【常见目录说明】目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。/etc存放系统管理和配置文件/home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以...

2019-09-05 13:54:00 257

转载 虚拟机 编辑器 vi使用方法详细介绍

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。1、vi的基本概念   基本上vi...

2019-09-04 09:05:00 7314

转载 Vim命令合集(四)

Vim命令合集命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim 直接启动vimvim filename 打开vim并创建名为filename的文件文件命令打开单个文件vim file同时打开多个文件vim file1 file2 file3 ...在v...

2019-09-03 18:19:00 113

转载 linux是什么与如何学习(三)

1.1Linux是什么  Linux是在计算机上面运作的,所以说是一组软件。1.2 Linux是什么?操作系统还是应用程序?  计算机主机是由一套硬件所组成的,为了有效的控制这些硬件资源,于是就有了操作系统的产生。因此,Linux就是一套操作系统欢迎您点击链接进入Linux公社网站2.Linux的分类(1)Linux根据市场需求不同,基本分为两个方向:...

2019-09-02 15:28:00 112

转载 linux常用命令(二)

最近都在和Linux打交道,觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。为了方便大家查找linux的相关命令,将我了解到的命令列举一下,仅供大家参考:系统信息arch 显示机器的处理器架构(1)uname -m 显示机器的处理器架构(2)uname -r 显示正在使...

2019-09-02 11:34:00 171

转载 IDEA 如何批量修改变量名

修改前的变量 System.out.println("bbbbb"); System.out.println("bbbbb"); System.out.println("bbbbb"); System.out.println("bbbbb"); System.out.println("b...

2019-08-28 14:00:00 449

转载 Idea 竖选文本、竖向选择、横向纵向选择文本代码

在使用Idea的时候,可能需要在相同类型的文字中增加数据,所以Idea提供一种列式选择方式,提高开发的效率。如果需要使用,我们可以选中代码,右键单击,在弹出的菜单中选中【Column Selection Mode】列选中模式使用快捷键 alt +shift+insert 可以选中需要修改的代码 使用ctr + 左右箭头 可以左右移动 ,只单独使用左右箭头时 可在某...

2019-08-28 09:28:00 1828

转载 IDEA中的.iml文件和.idea文件夹

使用IDEA创建一个maven工程,目录结构中会产生了两个不一样的东西——分别是 .iml文件和.idea文件夹。iml是 intellij idea的工程配置文件,里面是当前project的一些配置信息。.Idea存放项目的配置信息,包括历史记录,版本控制信息等,可以不理会。我们也可以配置隐藏将其不显示。点击file->Settings->Fil...

2019-08-28 09:01:00 164

转载 接收来自路劲中的参数

路劲中的传参@GetMapping("/data/car-schedules/{id}/{carId}") public Object getCarSchedule(@PathVariable String id, @PathVariable String carId) { return findAllService.getCarSchedule(id,car...

2019-08-28 08:35:00 122

转载 字符串转Interger

public static void main(String[] args) { String t = "5"; Integer integer = Integer.valueOf(t); System.out.println(integer); // --------> 5 }转载于:h...

2019-08-27 17:43:00 156

转载 Spring Boot(十七):使用 Spring Boot 上传文件

上传文件是互联网中常常应用的场景之一,最典型的情况就是上传头像等,今天就带着带着大家做一个 Spring Boot 上传文件的小案例。1、pom 包配置我们使用 Spring Boot 版本 2.1.0、jdk 1.8、tomcat 8.0。<parent> <groupId>org.springframework.b...

2019-08-26 11:52:00 115

转载 Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例。先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个 Demo 来试试它的效果,越简单越容易上手最好。在网上找相关资料的时候总是很麻烦,有的文章写的挺不错的但是没有源代码,有的有源代码但是文章介绍又不是很清楚,所在找资料的时候稍微有点费劲。因此在我学习 S...

2019-08-26 11:47:00 98

转载 Spring Boot (十四): Spring Boot 整合 Shiro-登录认证和权限管理

这篇文章我们来学习如何使用 Spring Boot 集成 Apache Shiro 。安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求。在 Java 领域一般有 Spring Security、 Apache Shiro 等安全框架,但是由于 Spring Security 过于庞大和复杂,大多数公司会选择 Apache Shiro 来使用,这篇文章会...

2019-08-26 11:41:00 109

转载 Spring Boot (十三): Spring Boot 小技巧

一些 Spring Boot 小技巧、小知识点初始化数据我们在做测试的时候经常需要初始化导入一些数据,如何来处理呢?会有两种选择,一种是使用 Jpa,另外一种是 Spring JDBC 。两种方式各有区别下面来详细介绍。使用 Jpa在使用spring boot jpa的情况下设置spring.jpa.hibernate.ddl-auto的属性设置为c...

2019-08-26 11:37:00 111

转载 Spring Boot(十一):Spring Boot 中 MongoDB 的使用

MongoDB 是最早热门非关系数据库的之一,使用也比较普遍,一般会用做离线数据分析来使用,放到内网的居多。由于很多公司使用了云服务,服务器默认都开放了外网地址,导致前一阵子大批 MongoDB 因配置漏洞被攻击,数据被删,引起了人们的注意,感兴趣的可以看看这篇文章:场屠戮MongoDB的盛宴反思:超33000个数据库遭遇入侵勒索,同时也说明了很多公司生产中大量使用mong...

2019-08-26 10:51:00 103

转载 Spring Boot (十):邮件服务

Spring Boot 仍然在狂速发展,才几个多月没有关注,现在看官网已经到 2.1.0.RELEASE 版本了。准备慢慢在写写 Spring Boot 相关的文章,本篇文章使用 Spring Boot 最新版本 2.1.0 进行开发。发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。最早期的时候我们会使用 JavaMail 相关 api...

2019-08-26 10:41:00 218

转载 Spring Boot(九):定时任务

在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现1、pom 包配置pom 包里面只需要引入 Spring Boot Starter 包即可<dependencies> <dependency> <grou...

2019-08-26 10:36:00 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除