自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何编写一个项目开发文档

项目开发过程中为了增加程序的可读性和程序的健壮性, 方便后期程序的调试和维护,所以需要在开发过程中统一技术规范,一般会在项目初期确定好相关文档作为这一统一的规范。不同公司会对文档做不同要求,划不同的分类,但一般来说(或者拿自己的经验说)大致可以分为需求文档、接口文档、流程图(可以单独作为一份文件可以作为附件附在文档中)、变更文件等。一、需求文档在项目启动之后,项目的目标已经明确了,那么就要...

2018-09-29 21:51:31 69765 9

原创 JVM字节码指令简介

引言众所周知,Java程序是运行在Java虚拟机上的,而这里的“虚拟”是对什么东西进行虚拟呢?答案当然就是对“实体”机进行虚拟啦,虚拟机可以看做是对实体机进行了进一步的封装和抽象,隐藏了不同实体机之间的差别,从而达成“Write Once,Run AnyWhere”的目标。既然虚拟机是对实体机的虚拟,所以我认为虚拟机和实体机在结构和功能上必然存在某种程度上的对应与关联。因此我们在学习时应该注意...

2018-09-28 23:03:33 1041

原创 开发过程中如何理解好一个项目的需求

这里的软件,可以是个小程序、小工具,可以是个框架、组件,也可以是个系统。1 软件的理想对很多开发人员来说,需求是个比较笼统、模糊的概念。如果不在开发运维的过程中,多揣摩多思考,那么需求这个东西就会变的越来越陌生,甚至觉得不那么重要,不那么相关!那么到底需求是什么?我说——需求,是软件的理想!“做人如果没有理想,跟咸鱼有什么区别!”同样,软件也应该有软件的理想,没有理想的软件连咸鱼都...

2018-09-27 19:24:42 4553

原创 java虚拟机之类文件结构

字节码是构成Java平台无关性的基石。实现语言无关性的基础是虚拟机和字节码存储格式。Java语言中的各种变量、关键字和运算符的语义最终是由多条字节码命令组成,因此字节码命令所能提供的语义描述能力肯定会比Java语言本身更强大。Class类文件的结构        Class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件中,中间没有添加任何分...

2018-09-26 23:08:55 127

原创 JVM的垃圾回收器和内存分配策略详解

一、判断对象存活的算法1、引用计数算法(1)概念:给对象中添加一个引用计数器每当有一个地方引用它时,计数器值加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。(2)java虚拟机里面没有选用引用计数算法来管理内存,其中最主要的原因是它很难解决对象之间相互循环引用的问题。2、可达性分析算法(1)概念:通过一系列的成为“GC Roots”的对象作为起始...

2018-09-26 23:02:02 124

原创 一个项目经理必备的素质

今天做项目出了一个小插曲,所以今天就不说技术,说一下一些关于项目经理的必备素质和怎么把控好一个项目 项目的整个阶段还是需要项目经理与开发人员共同协作1、项目经理在对接需求时候要能够比较详细了解客户需求,能够根据需求罗列出具体功能模块,要跟客户多次确认需求,确保在需求阶段的完整性,准确性。2、功能模块整理后,可找开发人员一起开会,讲解客户需求,沟通解决方案,后请开发人员根据功能模块整理具...

2018-09-25 21:39:34 690

原创 JVM的垃圾回收机制

当JVM创建对象遇到内存不足的时候,JVM会自动触发垃圾回收garbage collecting(简称GC)操作,将不再使用但仍存在JVM内存中的对象当做垃圾一样直接清理掉,释放被占用的内存空间,供新创建的对象使用。那么问题来了,要让系统能够自动实现不被引用对象的回收,有几个问题需要解决:Who:哪些是不再使用要被当做“垃圾”回收处理的对象?也就是要确定垃圾对象。 Where:在哪里执行垃...

2018-09-24 23:01:29 201

原创 JVM的内存区域划分

由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:                                         如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各...

2018-09-24 22:57:42 128

原创 layui select下拉框监听值变化 layui 下拉列表的change事件

layui下拉列表的事件不能用jq的change 应该用自带的方式写 。默认情况下,事件所监听的是全部的form模块元素,但如果你只想监听某一个元素,使用事件过滤器即可。如  监听select下拉选择框被选中时触发,回调函数返回一个object参数,携带两个成员:注意:form.render('select');渲染一下 不然你的操作还是不生效  select不是选择器 表...

2018-09-24 22:52:12 3560

原创 Ubtuntu下安装mysql即远程连接mysql服务

首先执行下面三条命令:sudo apt-get install mysql-serversudo apt isntall mysql-clientsudo apt install libmysqlclient-dev截图如下:安装成功后可以通过下面的命令测试是否安装成功:sudo netstat -tap | grep mysql出现如下信息证明安装成功: ...

2018-09-23 15:57:08 430

原创 Ubtuntu下配置Tomcat自动启动

如果要设置为tomcat开机自启动,需要编辑文件/etc/rc.local,这里存放着开机自启动的程序。(配置在/etc/profile和/etc/bash.bashrc文件中的内容是当有用户登录时才起作用,这不符合tomcat需要启动的实际情况)   现在我们编辑/etc/rc.localsudo vi /etc/rc.local在最后一行之前加入如下信息:(配置你自己的tomcat...

2018-09-23 04:08:09 176

原创 Ubtuntu下安装Tomcat8.5

首先我们要在自己的电脑上下载tomcat8.5的包百度云链接:链接:https://pan.baidu.com/s/191u5sBV2DWivA-rs3t3rDw   提取码:jotp通过ftp将下载的tomcat8.5.9压缩包上传到ubuntu服务器,配置VSFTPD可以参看我的另一篇博客https://mp.csdn.net/postedit/82819601然后...

2018-09-23 03:33:57 540

原创 Ubuntu 16下vsftpd 安装配置实例

第一步:安装VSFTPDsudo apt-get install vsftpd安装完成后启动VSFTPD服务:service vsftpd start注意要使用非root用户下,要使用sudo第二步:新建目录/home/uftp作为用户主目录sudo mkdir /home/uftp第三步:新建用户uftp,制定用户主目录和所用shell,并设置密码su...

2018-09-23 02:46:24 477

原创 Ubtuntu下使用ppa源安装JDK1.8(免配置环境变量)

使用ppa源方式安装javaJDK 1.8首先我们要添加ppa源。输入sudo add-apt-repository ppa:webupd8team/java然后输入sudo apt-get update更新源接下来就是安装了安装oracle-java-installer:输入sudo apt-get install oracle-java8-installer...

2018-09-23 01:44:07 817

原创 Ubtuntu下安装SSH,配置远程连接。

首先我们先下载资源。百度云链接:链接:https://pan.baidu.com/s/1Nm9qbDaBRfcTDjkeDul7Og   提取码:gpoi系统页面下,我这里已经连接好了,所以演示就先这样演示。输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。输入"sudo apt-get i...

2018-09-23 01:31:53 671

原创 windows下安装虚拟机和配置Ubuntu系统(附下载资源)

首先我们要先去下载虚拟机,我们这里用VMware Workstation 14 Player,安装Ubuntu系统,我们现在这里附上资源,百度云链接:链接:https://pan.baidu.com/s/1HDHrQwJYutaiXnY8N3oeFw  提取码:1ece打开VMware安装包,然后一直点击下一步即可,注意选择安装路径。尽量不要安装在C盘,安装时不用输入秘钥,选择仅用...

2018-09-23 00:37:27 1155

原创 centos下安装Tomcat和配置自启动

安装环境: centos7.2 jdk1.8.0 tomcat8.5一、安装tomcat 1、到官网下载tomcat http://tomcat.apache.org/download-80.cgi 2、用rz -be 或者ftp工具将tar包上传到目标服务器 3、解压到当前目录: tar -xzvf apache-tomcat-8.5.8.tar.gz 4、将解压后的目...

2018-09-21 00:33:46 136

原创 centos7下安装JDK1.8

首先下载jdk1.8  去官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html  解压到指定的目录  解压命令 若后缀为.tar.gz,使用tar -xzvf filename //安装到当前目录下tar -zxvf filename -C /usr/...

2018-09-21 00:29:50 156

原创 如何使用Linux创建就定时任务

我们使用crontab在linux服务器上面配置定时任务,crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。crontab命令允许用户提交、编辑...

2018-09-18 00:49:34 212

原创 Linux下如何安装JDK

第一种方法只需要一条命令就可以安装jdk:yum install java-1.8.0-openjdk* -y执行过这条命令无需配置,直接可以使用。 第二种方法0.下载jdk8登录网址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html选择对应jdk版本...

2018-09-18 00:42:28 100

原创 Linux常用命令大全

学前理论 linux主要特征 :一切且文件(目录、硬盘等都是文件);硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d]; /dev/sr0(/dev/cdrom)是光驱的设备名(df命令查看),为设备文件,代表的是光驱本身,得把这个设备挂载到目录下(一般为/mnt)(文件系统的临时挂载点),才能对设备上的文件进行读写等操作; 不懂的命令 :man 命令(查用法、全称),...

2018-09-14 23:07:15 357

原创 联合索引的最左匹配为原则

最左前缀匹配原则在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例:对列col1、列col2和列col3建一个联合索引 1 KEY test_col1_col2_col3 on test(col1,col2,col3); 联合索引 test_col1_col2_col3 实际建立了(col1...

2018-09-12 23:26:52 6728 5

原创 数据库设计需要需要注意到什么(优化数据库)

优化数据库的方法有很多,最近在看面试题,总结了一些优化数据库的方法。优化数据库的方法1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚...

2018-09-12 23:21:20 2360

原创 SQL语句建立索引不走索引的几种情况

1、查询谓词没有使用索引的主要边界,换句话说就是select *,可能会导致不走索引。比如,你查询的是SELECT * FROM T WHERE Y=XXX;假如你的T表上有一个包含Y值的组合索引,但是优化器会认为需要一行行的扫描会更有效,这个时候,优化器可能会选择TABLE ACCESS FULL,但是如果换成了SELECT Y FROM T WHERE Y = XXX,优化器会直接去索引中...

2018-09-12 23:17:24 13180 1

原创 Java实现简单的冒泡排序

冒泡排序  它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的。   什么是冒泡排序?   顾名思义,像水里吐的泡泡一样,因为水越深压强越大,而泡泡的在水里的由深变浅。所以,同样的气体体积,第一个出来的泡泡比第二个出来的要大。如下图所示   冒泡排序的Java代码public class Bubble { /** * 冒泡排序算法...

2018-09-12 01:51:54 786

原创 Java的直接插入排序

直接插入排序  直接插入排序是一种简单插入排序,基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程    类似我们摸牌,一开始有一堆牌(待排序的)。由于第一次摸牌时手中没牌,所以不需要排序。第二次摸牌时和手中第...

2018-09-12 01:47:18 133

原创 Spring详解

1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Spring...

2018-09-12 01:42:33 444

原创 多线程面试题

1).什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支 持。2).线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程,每条线...

2018-09-12 00:06:08 166

原创 Java实现堆排序和图解

堆排序:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:同时,我们对堆中的结点按层进行编号,将这种逻辑结构...

2018-09-08 01:31:01 48579 25

原创 Eclipse的自动添加注释和导入导出注释模板

1、可通过如下三种方法自动添加注释:输入“/**”并回车。 用快捷键 Alt+Shift+J(先选中某个方法、类名或变量名)。 在右键菜单中选择“Source > Generate ElementComment”。2、新建文件或类的时候,怎么自动生成文件(file)的注释呢?  只需要勾选Automatically and comments for new method...

2018-09-08 01:14:26 7469

原创 Eclipse自定义注释风格

一、简介设置注释模板的入口:Window->Preference->Java->Code Style->Code Template然后展开Comments节点就是所有需设置注释的元素了!然后点击选中的注释模块,点击edit就可以设置了 下面我们来简单解释一下这些注释的意思和推荐的模板1、文件(Files)注释标签Files标签是对新建的文件...

2018-09-08 01:06:08 612

原创 Java实现快速排序(快排)

快速排序是冒泡排序的改进版,也是最好的一种内排序,在很多面试题中都会出现,也是作为程序员必须掌握的一种排序方法。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。下面我们...

2018-09-07 02:12:49 92553 19

原创 Sql中的时间处理函数(拆分年月日)

定义和用法DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_FORMAT(date,format)date 参数是合法的日期。format 规定日期/时间的输出格式。格式 描述 %a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-...

2018-09-06 01:45:14 13309

原创 sql中的常用的字符串处理函数

一、常用函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。2、CHAR()将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。3、LOWER()和UPPER()LOWER()将字符串全部转为小写;U...

2018-09-06 01:39:30 6271

原创 Java为什么要用多线程

用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。就例如一个网络爬虫的功能,有10亿数据,假如一条请求花费0.1秒,因为时间有限,所以你要尽量提升开发效率,你就需要好多的服务...

2018-09-05 00:16:55 3832

原创 SSM常用的几个注解的含义

@Service用于标注业务层组件@Controller用于标注控制层组件(如struts中的action)@Repository用于标注数据访问组件,即DAO组件基本上上述三个是最常用的注解,@Service("userService")注解是告诉Spring,当Spring要创建UserServiceImpl的的实例时,bean的名字必须叫做"userService",这样当A...

2018-09-03 21:09:31 1492

原创 JavaSSM实施文件的多上传

首先,我们要先用input  框的type=“file”的属性进行文件的上传,需要注意的是,multiple属性可以支持多上传<input multiple  type="file" id="files" name="files" onchange="upfileactual(this,'upload/uploadFiles.json')" />然后function ...

2018-09-03 21:02:47 756

空空如也

空空如也

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

TA关注的人

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