自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何成为一名有竞争力的后端工程师

大家好,这次我们来讲的是如何成为一名有竞争力的后端工程师,我主要从两个方向来介绍,一个构建自己的能力模型,一个达成每个阶段的目标。能力模型,这里我用思维导图的方式来给大家描述:由于篇幅问题,我把这块分两张图来说明阶段目标,目标要分短期,中期,长期,以及终极目标人生在世,不过短短的一百多年,如何在做事中寻找快乐是关键。哈哈...

2019-04-30 10:39:32 449

原创 JVM 垃圾回收机制之堆的分代回收

JVM垃圾回收机制之堆的分代回收前言前文我们了解了Java的GC机制,对于堆中的对象,JVM采用引用计数和可达性分析两种算法来标记对象是否可以清除,本文中我们还会了解到JVM将对分成了不同的区域,以便于更好的回收对象。堆的分代Java的堆是JVM中最大的一块内存区域,主要保存Java中各种类的实例。为了更好的管理堆中各个对象的内存,包括分配内存和回收内存。JVM将堆分成了...

2019-04-30 10:37:25 115

原创 vue快速入门

一、什么是 VueVue 是一个用于构建用户界面的渐进式的js框架,Vue 的核心是MVVM双向数据绑定模式及组件化开发,它使得开发前端不仅易于上手,还便于与Vue的优良生态或既有项目整合。二、快速开始1.在页面引入vue的js文件即可。注意:cdn是一种加速策略,能够快速的提供js文件<script src="https://cdn.bootcss.com/vue/2....

2019-04-30 10:35:20 285

原创 菜鸟Vue学习笔记(三)

菜鸟Vue学习笔记(三)本周使用了Vue来操作表单,接下来说下Vue中双向绑定表单元素的用法。Vue中双向绑定是使用的v-model,所谓的双向绑定即改变变量的值,表单元素的值也会改变,同样的,改变表单元素的值变量的值也会改变。例如:<body><div id="content"><form action="" method="post...

2019-04-30 10:33:58 246

原创 你还在循环里面用+号拼接字符串吗?

你还在循环里面用+号拼接字符串吗?前言对于初学Java的人来说,在学习String的时候,肯定有无数个人和我们讲过,”尽量不要使用+拼接字符串,效率不好,应该使用append “,但真相真的是这样的吗?下面我们来通过实际代码来测试一下+号与append的效率问题。代码分析 public class Demo { public static void main(Stri...

2019-04-24 16:51:47 1140

原创 小白学Java之Java简介及应用场景

Java什么是前端开发我们肯定有这样的经验,上淘宝,上天猫,或上京东等各大购物网站,然后在上面浏览商品,将商品加入购物车,然后下单,支付,最后收到我们想要的商品,一切都是那么的自然。 那么我们看得见的是,前端这样跟我们交互的页面,比如以下这些,他们的作用是勾起顾客的购买欲望。 那么什么是后端开发?后端很重要吗?!? 什么是后端开发我们经常说...

2019-04-24 16:50:25 133

原创 [游戏中寻找学习JAVA的乐趣]坦克大战

游戏中寻找学习JAVA的乐趣之坦克大战系列0-坦克大战简介前言本篇主要对坦克大战Robocode做一个简单的介绍,对java最初的人工智能算法演练工具做一个了解坦克大战简介今天我们要谈的是java 最初的基于人工智能算法的仿真模拟坦克大战,全称Robocode。Robocode 是一位IBM的工程师 Mat Nelson 用Java 语言所创造的坦克战斗仿真引擎。Robocod...

2019-04-24 16:49:07 246

原创 [游戏中寻找学习JAVA的乐趣]坦克大战系列1-编写我的第一个坦克

游戏中寻找学习JAVA的乐趣之坦克大战系列1-编写我的第一个坦克前言本篇主要对Robocode的使用进行演示。Robocode的基本使用今天我们要看看我们安装的Robocode应该怎么使用,我相信大家应该已经迫不及待了吧,当然,我也相信很多童鞋都已经开始玩起来了,那我就领着大家来使用以下吧。首先在主界面中有这几个菜单Battle是用于对战的,Robot是其自带的坦克...

2019-04-24 16:46:30 103

转载 菜鸟Vue学习笔记(一)

菜鸟Vue学习笔记(一)我今年刚参加工作,作为一个后台Java开发人员,公司让我开发前端,并且使用Vue框架,我边学习边记录。Vue框架是JS的封装框架,使用了MVVM模式,即model—view—viewmodel模式, 简而言之,就是数据与视图的绑定。我准备开始学习一些最基础的Vue使用,以此入门。首先在网上下载了vue.min.js的文件。我选择了v-html这个标...

2019-04-23 15:57:34 619

原创 菜鸟Vue学习笔记(二)

菜鸟Vue学习笔记(二)今天天气不错,心情也不错,最近学习Vue越来越顺利了,今天接着学习,接着记录。首先,来学习下常用的v-bind属性,它的作用是在属性中使用vue中定义的变量的值。<div id="div1"><a v-bind:href="href">百度一下</a><br /></div><s...

2019-04-23 15:55:32 152

原创 Java成神路上之设计模式系列教程之一

Java成神路上之设计模式系列教程之一千锋-Feri在Java工程师的日常中,是否遇到过如下问题:Java 中什么叫单例设计模式?请用Java 写出线程安全的单例模式?什么是设计模式?你是否在你的代码里面使用过任何设计模式?解释下什么是观察者模式?使用工厂模式最主要的好处是什么?在哪里使用?等等相关的问题,那么问题来了,究竟什么是设计模式,它与我们又有什么关系?在我们的...

2019-04-23 15:53:41 97

原创 JVM垃圾回收机制之对象回收算法

前言在前面的文章中,介绍了JVM内存模型分为:堆区、虚拟机栈、方法区、本地方法区和程序计数器,其中堆区是JVM中最大的一块内存区域,在Java中的所有对象实例都保存在此区域,它能被所有线程共享。在Java中还有一个重要的机制:GC(垃圾收集器),堆是GC管理的主要区域,本文会带大家了解GC机制。GC的简介GC(Garbage Collection)垃圾收集机制是Java一个重要特性...

2019-04-23 15:51:35 73

原创 让你真正了解Java(纯干货)

“你学习一门技术的最佳时机是三年前,其次是现在。”这句话对于哪一种行业都很适用,如果你已经学习过Java,那么恭喜你你很有先见之明,如果你并不了解Java,这篇文章带你快速掌握Java的几个核心知识点。一、Java特点1、 面向对象尽管受到其前辈的影响,但Java没被设计成兼容其他语言源代码的程序。这允许Java开发组自由地从零开始。这样做的一个结果是,Java语言可以更直接、更...

2019-04-23 15:48:11 173

原创 CKEditor的使用

简介CKEditor是一个富文本编辑器。是一种内嵌于网站中,呈现一种所见即所得的页面效果。常见于博客类型网站、或者电商网站管理系统中对商品文案的编辑功能。基本使用1、首先,下载地址:https://ckeditor.com/ckeditor-4/download/ 下载之后将下载包中的js和css导入项目中。2、然后,写一个简单的带一个textarea的页面。&lt...

2019-04-16 17:05:10 200

转载 Javascript脚本之清除浏览器历史数据

简介在某些数据查询页面,点击某条数据查看详细信息,如果此时列表数据有更新(新增、修改、删除等),当点击浏览器的返回按钮时,查看的数据仍然是旧的数据,原因是返回时,查看的是浏览器的缓冲数据,并不会从数据库中重新查询。为了解决这个问题,我研究出了一段可以避免这种脏数据的脚本,只需要在查询页面加入一段脚本即可。我将这段脚本写在了一个nohistory.js的文件中,在查询页面引入即可实现实时最新数据...

2019-04-16 17:03:02 2299

原创 Java和移动端交互

Java和移动端交互我们开发java EE项目,不止有B/S模式,还有C/S模式,也就是客户端-服务端的方式,现在的主流客户端基本都是移动端,那么java如何和移动端交互呢其实对于任何模式的请求来说,都没有任何区别,因为他们最终都被封装为java总的request对象,所以在我们的java服务的来说我们是不需要做什么改动的,只是因为移动端我们返回一个页面给它的话它解析起来比较麻烦,所以移动...

2019-04-16 17:00:27 1028

原创 JVM的内存模型

简介要更好的使用Java进行开发,我们需要理解JVM是如何分配内存的,这些内存都用来做什么,如何回收不用的内存。下面我们来了解JVM的内存分配,根据JVM的规范,JVM的内存分为5个区域:堆区虚拟机栈方法区本地方法区程序计数器下面我们具体了解下每个区域的区别程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的...

2019-04-16 16:56:53 77

原创 ​ Win10 环境安装RabbitMQ

Win10 环境安装RabbitMQ一、环境准备RabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。1.1.安装Erlang所以在安装rabbitMQ之前,需要先安装Erlang 。...

2019-04-16 16:54:52 94

原创 Vue进阶

## Vue进阶### 一、vue实例#### 1.一个基本的vue的实例```html<head><meta charset="UTF-8"><title></title></head><body><div id="app"><h1>{{title}}&...

2019-04-12 17:45:24 112

原创 分布式框架原理

一 传统垂直mvc项目1.垂直架构图通常mvc并不包括数据访问层,运行也比较简单,直接运行在一个tomcat等web容器中即可,适合小型项目垂直架构的缺点随着业务的不断发展,应用规模越来越大,问题越来越凸显,比如:1)复杂应用的开发维护成本变高,部署效率逐渐降低,一个功能出问题,整个系统就得重新打包2)团队协作效率变差,公共功能重复开发,代码重复率太高3)系统可靠性变...

2019-04-11 16:52:36 4116 1

原创 Java新手如何学习Spring、Struts、Hibernate三大框架?

spring,hibernate,struts 是JavaEE方向企业使用较多的几个框架技术,所以就会很多人想去学习这几个框架,当然这几个框架流行的时间也比较长了,相对资料也会比较多,但是适合新手的并不多,所以我就新手学习这几个框架来说说1:Spring 近年来发展的越来越大,基本形成基于spring的一个开发的生态链,提到spring就会提到EJB,曾经使用过EJB开发JAVA EE应用的人...

2019-04-10 17:39:52 325

原创 为什么有面试官喜欢让面试者用纸笔写代码

手写代码的情况在不同情况下确实有不同的意图,针对大部分面试的人员来说无非包含以下几点:1.考察你对代码的理解张三去面试,面试官李四说,小伙子你来写一个归并排序吧,一顿猛虎操作结束之后,就三个结果,一,很熟练的完成代码的书写,面试官想这家伙是背好的还是技术的确不错呢?二,有思考过程完成代码的书写,...

2019-04-09 17:24:38 565

原创 FlappyBird开发帮助文档

FlappyBird开发帮助文档项目需求完成FlappyBird游戏。功能说明:游戏开始后,间歇性的点击鼠标,让小鸟向上飞,不会掉下来,并且要穿过柱子的空隙,不能碰到柱子,碰到就dead了,穿过一个柱子的一分界面需求:开始界面:点击鼠标后开始游戏,游戏时界面:游戏结束时界面:性能规定:游戏要求每点击一下鼠标,必须实时响应为小鸟向上飞指定的高度,并且小鸟一直有下降的速度,并且柱子...

2019-04-08 17:57:26 116

原创 JVM类加载机制

\JVM相关概念jdkjdk(Java Development Kit)Java开发包,是Java开发人员用于编译和调试程序的一套程序的集合。jrejre(Java Runtime Evironment)Java运行时环境,是运行Java程序的平台,所有的Java程序必须在这个平台中才能执行。jvmjvm(Java Virtual Machine)Java虚拟机,是用代码虚拟出来的计...

2019-04-08 17:56:02 117

原创 Redis事务和实现秒杀功能的实现

今天带着学生学习了Redis的事务功能,Redis的事务与传统的关系型数据库(如MySQL)有所不同,Redis的事务不能回滚。Redis中使用multi、exec、discard、watch、unwatch等命令来操作事务。例如:MULTIOKINCR aaaQUEUEDINCR bbbQUEUEDEXEC(integer) 1(integer) 1...

2019-04-08 17:54:40 194

原创 SpringCloud分布式配置

SpringCloud分布式配置最近在讲SpringCloud,下面将Spring Cloud中的分布式配置config的操作步骤记录如下:第一步:在项目能够访问的git上新建一个工程(此处选择的gitee.com,可以选择其他的,也可以选择局域网的gitlab等),并在工程中新建文件夹,并新建对应的项目中需要使用的配置信息。(具体见https://gitee.com/migid/myconf...

2019-04-08 17:52:44 71

原创 线程的创建方式

最近在java工程师的面试中,经常被问到,请聊下线程的创建方式?而本篇文章就聊一下Java中创建线程的方式。第一种:继承Thread,并重写run方法代码如下://1、继承Thread 重写run方法Thread thread=new Thread(){@Overridepublic void run() { System.out.println(Thread.curren...

2019-04-04 16:42:27 77

原创 windows与linux中的mysql配置主从

最近在给学生讲解数据库的主从配置,由于学生电脑里面装的虚拟机是linux的,但是本机的系统是windows的,所以需要用windows中的mysql与linux中的mysql进行主从配置。下面说一下主要步骤:如果将windows中的当主机,那么配置如下(如果linux中的当主机,那么反过来配置就行):Windows中的主机配置:首先,找到windows中mysql的配置文件路径。使用主...

2019-04-04 16:39:54 190

原创 使用JBolt新建Maven版工程步骤

一、打开新建对话框在左侧右键new中可以找到JFinal创建工程的菜单JBoltHome页面也有快捷按钮用来弹出创建工程对话框。二、填写Maven和其他信息配置填写工程name 主包名 下面有三个配置Maven JFinalConfig Database三、生成工程点Finish可以按照配置一键生成maven结构项目工程和pom.xml等待进度条处理完成这样就是正常的eclipse...

2019-04-04 16:38:23 328

原创 Redis事务和实现秒杀功能的实现

今天带着学生学习了Redis的事务功能,Redis的事务与传统的关系型数据库(如MySQL)有所不同,Redis的事务不能回滚。Redis中使用multi、exec、discard、watch、unwatch等命令来操作事务。例如:MULTIOKINCR aaaQUEUEDINCR bbbQUEUEDEXEC(integer) 1(integer) 1...

2019-04-04 16:36:34 374

原创 SpringCloud分布式配置

最近在讲SpringCloud,下面将Spring Cloud中的分布式配置config的操作步骤记录如下:第一步:在项目能够访问的git上新建一个工程(此处选择的gitee.com,可以选择其他的,也可以选择局域网的gitlab等),并在工程中新建文件夹,并新建对应的项目中需要使用的配置信息。(具体见https://gitee.com/migid/myconfig/)第二步:编写config...

2019-04-04 16:34:14 88

转载 选择排序算法

选择排序(Selection sort)是一种相对简单的排序算法。1 什么是选择排序它的工作原理是根据升序或者降序的需求,每次从待排序的元素中选出最小或最大的元素,放在序列的起始位置。选择排序时,排序的轮数和比较的次数与待排序的元素个数相关2 举例说明针对待排序的元素进行升序排序待排序的元素如下 arr: 23 42 5 17 35使用变量index记录最小值元素的索引第一轮比较:...

2019-04-03 16:34:43 138

原创 冒泡排序算法

1 什么是冒泡排序针对待排序的元素,从第一个元素开始,相邻的两个元素依次进行比较,选出最小或最大的元素,放在序列的结束位置。2 举例说明针对待排序的元素进行升序排序第一轮比较如图所示:第一次,23和15比较,23>15,交换第二次,23和8比较,23>8,交换第三次,23和34比较,23<34,不交换第四次,34和20比较,34>20,交换第一轮比较结束,...

2019-04-03 16:32:37 70

原创 dcoker-1

DockerDocker介绍http://www.runoob.com/docker/docker-tutorial.html什么是dockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使...

2019-04-03 16:30:36 173

原创 dubbo+zookeeper入门案例

分布式入门案例Dubbo+zookeeper搭建什么是分布式?硬件或者软件组合组件分布在不同的网络计算机上,彼此之间通过消息传递进行通信和协调的系统架构模式演变:MVC—》RPC(远程过程调用协议)–》SOA(RPC的基础上增加了服务治理/管理中心)Dubbo和zookeeper的作用及特点Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案以及SOA服务...

2019-04-03 16:28:58 114

原创 JAVA NIO

JAVA NIO一、简介Java NIO, 是从Java 1.4版本开始引入的 一个新的IO API,可以替代标准的Java IO API。 NIO与原来的IO有同样的作用和目的,但是使用 的方式完全不同, NIO支持面向缓冲区的、基于 通道的IO操作。 NIO将以更加高效的方式进行文 件的读写操作。io 与 nio的区别如下IONIO面向流(Stream Oriented)面向缓冲...

2019-04-03 16:21:37 79

原创 关于java类加载的那些事

首先,类加载的定义:类加载(Class Loading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接、初始化后,最终形成可以被虚拟机直接使用的Java类型地过程。其次,类加载器的分类:启动类加载器(Bootstrap ClassLoader):负责加载<\JAVA——HOME>\lib目录中的并且可以被虚拟机识别的;扩展类加载器(Extension ClassL...

2019-04-02 17:18:10 74

原创 自定义注解

1.什么是注解Annontation是Java5开始引入的新特征,中文叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员...

2019-04-02 17:15:43 98

原创 手撕RPC框架

手撕RPC使用Netty+Zookeeper+Spring实现简易的RPC框架。阅读本文需要有一些Netty使用基础。服务信息在网络传输,需要讲服务类进行序列化,服务端使用Spring作为容器。服务端发布服务,将接口的全路径当做节点名称,服务的ip+端口作为节点值,存储到Zookeeper中。客户端调用的时候,去Zookeeper查询,获得提供该接口的服务器ip和端口,通过Netty进行调用。...

2019-04-02 17:13:39 239

原创 关于JVM的一些冷知识

(1) Java加载类的一般顺序:1.静态属性,静态方法声明,静态块。2.动态属性,普通方法声明,构造块。3.构造方法。当加载一个类时,JVM会根据属性的数据类型第一时间赋默认值(一举生成的)。然后再进行静态属性初始化,并为静态属性分配内存空间,静态方法的声明,静态块的加载,没有优先级之分,按出现顺序执行,静态部分仅仅加载一次。至此为止,必要的类都已经加载完毕,对象就可以被创建了(2) ...

2019-04-02 17:11:22 92

空空如也

空空如也

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

TA关注的人

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