自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

God Liao On The Way

记录学习经历,顺便发发牢骚

  • 博客(202)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 java程序生成带参数的可执行exe文件

简介最近写了一个代码生成工具,可根据一些简单的配置自动生成model、dao、service、serviceImpl和controller层的代码,减少冗余代码的开发量。听取了同事的建议,把工具制作成可执行工具,这样可保证生成工具的独立性,并且工具对原来的项目代码不存在依赖。环境配置1、JDK环境2、idea或Eclipse3、exe4j,下载地址:https://www.ej-tech...

2019-01-29 20:39:21 2243 1

原创 刚进公司,如何优雅的使用git?

一、前言实习的时候,组内的大佬让我们去下载公司的代码去看,并且要求使用非master分支(如next分支)进行开发,当时我和另外两个应届的同学都去尝试拉分支,结果发现拉下来的都不next分支,而是master分支,后来通过查找资后知道一种好的直接拉取指定分支的办法,在这里,我想记录下一些重要的地方,不会叙述太多git的知识点。二、准备工作1、下载git(windos)工具,配置好邮箱和用户名...

2019-01-10 22:55:40 15537 7

原创 实习生招聘回忆-初见链家网

  其实实习完的时候就想记录下在北京实习的那段日子了,只是回来就是忙碌着秋招和论文工作。直至今日有些空闲日子了,我想要记录下来这一段人生中难忘的经历。事情还得从实习生招聘开始说起。  2018年3月到4月的时候,实习生招聘开始了。一开始的时候我觉得自己没怎么准备,外加在学校不一定能出去实习就没没准备找实习工作。然而同实验室的大佬 S 已经开始忙碌了,没过几天大佬 S 力压群雄收到一个来自CVTE...

2019-01-07 15:11:39 805 1

原创 hadoop namenode启动失败 jps看不到已经启动的namenode

问题描述namemode启动之后shell没有报错,但使用jps明露并不能看到namenode已经被启动。问题解决第一步:定位出错的原因。可以通过分析hadoop的日志文件信息来定位问题的发生原因。这里我们的问题是namenode启动异常,所以可以cd进入hadoop目录中的logs文件中,打开namenode的log文件,namenode的log文件命名为hadoop-root-name...

2018-12-28 17:18:56 3289

原创 线程安全与锁优化

线程安全并发是计算机“压榨”计算机运算能力的一个强力武器,但是并发的到来也就引入的线程安全的问题。《深入理解Java虚拟机》的作者对线程安全的定义是:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的”。这个定义比较严谨。我对线程安全定义的简单理解...

2018-06-09 11:25:00 303

原创 Java内存模型与线程

硬件效率与一致性由于存储设备和处理器运算速度之间的存在巨大的差异,现在计算机系统在内存与处理器之间加入高速缓存来作为处理器与内存之间的缓冲。将处理器需要的数据复制到缓存中,让处理器可以快速的获取数据进行计算,计算结束后再从缓存同步带内存中去,这样处理器无需等待缓慢的内存读写。如此看似美好,但引入了一个新的问题:缓存的一致性。在一个多处理器系统中,每个处理器有自己的高速缓存,它们共享同一主存,这样在...

2018-06-09 11:13:29 1103

原创 虚拟机类加载机制

类的生命周期类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载 (Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化 (Initialization)、使用(Using)和卸载(Unloading)7个阶段。其中验证、准备、解析3个 部分统称为连接(Linking),这7个阶段如下所示: 类加载的过程1、...

2018-06-09 10:36:41 232

原创 垃圾收集器与内存分配策略

进行垃圾回收的时候肯定是要回收那些已经“死掉”的对象。所以以下就有了几个问题:(1)哪些对象是死掉的(或者说是哪些对象需要去回收)?(2)什么时候去回收?(3)如何去回收?判断对象是否死亡有引用计数法和可达性分析两种方法。引用计数法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0 的对象就是不可能再被使用的。缺点:当两个对象存在...

2018-06-09 10:31:07 430

原创 Java内存区域和内存溢出异常

Java运行时内存区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。如图2-1所示 程序计数器(Program Counter Register):程序计数器是一块较小的内存空间。它可以看作是当前线程所执行的字节码的行号指示器。系统运行时,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响。线程执行Java方法时,程序计数器记录的是虚拟机正在执...

2018-06-09 10:07:16 282

原创 ftp服务器上文件移动失败(ftpClient.rename返回false)

需求我在项目中需要在ftp服务器上移动文件,操作过程是:(1)先连接上ftp服务器,(2)切换到需要相应的工作目录 :    ftpClient.changeWorkingDirectory(downloadPath);(3)将文件所在目录重命名(很机智的方式),相当于文件移动:  ftpClient.rename(oldFileName, newFileName);坑(1)相对路径问题:chan...

2018-06-04 23:23:39 12045 2

原创 操作系统基础学习笔记

操作系统的四个特性并发:在一段时间内,运行多个程序,执行多个任务。从宏观上来说的。操作系统中引入进程的目的就是为了使程序能并发执行。共享:资源共享,即系统中的资源可供多个并发执行的进程共同使用。由于资源的属性不同,多个进程对资源的共享方式也不同,可分为:互斥共享方式 和同时访问方式。(1)互斥共享方式:一段时间内只允许一个进程访问该资源,如磁带机、打印机等,虽然可供多个进程使用,但为了打印或记录的...

2018-05-21 15:17:04 3327

原创 计算机网络面试基础

HTTP状态码1开头的说明消息已经接收,待处理。2开头的:这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。3开头的是用户需要重定向,如资源移动到了新的位置(301),需要重新请求另一个地址4开头是客户端错,如错误请求(400),Forbidden (403) , Not found (404)5开头的是服务端错误,Service Unvailable(503),服务器维护或过载。Int...

2018-05-08 09:56:04 407

原创 堆与堆排序

堆堆是计算机科学中一类特殊的数据结构的统称。堆可以被看出是一个近似的完全二叉树,一般使用数组去存储堆数据。如何去构造一个堆(以最大堆为例)?1、定义一个堆的数据结构 private int data[]; private int size; private int capacity;data用来存储数据,size是堆中元素的个数,capacity是堆的最大容量2、存储堆的数据堆中...

2018-04-09 14:23:24 212

原创 项目开发之查询优化

需求背景在刚开做项目的时候,由于数据量比较少,查询都是比较快的,当数据量大的时候,查询速度变得难以忍受。怎么优化查询速度对于优化查询速度,有一个简单且实用的方式就是对数据库表添加索引。而关于添加索引又有哪些问题呢?1、对于一张表应该选择那些字段作为索引呢?一般来说选择where、on、group by、order by后面的字段添加复合索引。2、添加符合索引字段的顺序会影响查询速度吗?会的。如有一...

2018-04-02 16:08:03 308

原创 项目开发之消息推送与强制下线

需求:实现消息推送与强制下线刚搜索这个需求的时候网上出现了一堆的推送服务。于是就想着调第三方库去实现,如极光推送。后来考虑到第三方库存在安全性问题或者可能某天这个第三方软件就不提供支持了,就改用了WebSocket来自己实现消息推送。关于服务端如何使用websoket,可以看我的这一篇博文:点击打开链接当使用websocket通信的时候,移动端与后台的交互过程是这样的。1、移动端必须先登录。在登录...

2018-04-02 15:42:20 1553

原创 Spring中使用定时任务之Spring Task

关于Spring TaskSpring task,我们可以将它比作一个轻量级的Quartz,使用简单方便,除spring相关的包外不需要额外的包,我们一般用来实现定时任务。Spring中整合spring task1、在springmvc的配置文件springmvc.xml中配置timetask的命名空间xmlns:task="http://www.springframework.org/schem...

2018-04-02 15:19:39 480

原创 FTP服务简介与java实现ftp上传下载

FTP简介FTP(File Transfer Protocol)是因特网中使用最广泛的文件传输协议。FTP协议是应用层协议,它是基于TCP协议的。FTP是一个客户/服务器系统。FTP的两种传输模式(主动模式和被动模式)关于”主动”还是”被动”都是针对于FTP服务器来说的,是选择主动模式还是被动模式是由客户端决定的。主动模式ftp主动模式过程大致如下:1、客户端随机选取一个大于1024的非特权端口与...

2018-04-02 15:11:32 224

原创 leetcode Sum Root to Leaf Numbers

题目Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.Find th

2018-01-23 17:05:28 203

原创 Spring入门学习笔记

本博文只是个人学习笔记之用,不推荐深入学习之用。IOC与DIIOC:控制反转,将对象的创建交由Spring管理。控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,并非面向对象编程的专用术语。它包括依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。DI:依赖注入,向类对象的属性中注入属性值IOC实现基本

2017-12-04 13:54:03 251

原创 第八章 数据库编程 存储过程与函数

本章的重点放在存储过程与自定义函数。主要介绍内容如下:1、存储过程的概念、如何定义存储过程及调用。 2、自定义函数的定义和使用。 3、存储过程的优缺点。 4、存储过程与函数的区别。(例子在mysql下实践)、存储过程存储过程的概念存储过程是由过程化的SQL语句书写的过程 , 这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程,使用时只需调用即可。存储过程创建create proced

2017-12-01 11:11:46 869

原创 第七章 数据库设计 E-R模型

本章重点放在E-R模型和E-R图,这是这一章节最常用且非常重要的一个知识点,本章的目的就是讲述一个E-R图是怎么画出来的。什么是E-R模型?E-R模型是有P.P.S.Chen提出的一个用E-R图描述现实世界的概念模型。E-R模型有三个重要的概念:实体、属性、联系。实体就是现实世界的一个现实或虚拟的对象,如一个学生就是一个实体,学生有属性 : 学号、姓名、年龄、身高等。属性依附于实体而存在,一个实体通

2017-11-23 21:35:51 18951 5

原创 第六章 关系数据理论 范式

这一章的重点放在范式,主要内容如下: 何为范式 ?范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。说白了就是一张数据表的表结构所符合的某种设计标准的级别。范式级别越高,表的设计就越标准。第一范式(1NF)第一方式是数据库表需要符合的最基本条件:表的每一个属性不能是再可分的数据项。 如一张表是这样的: 其中属性进货还可以再分,所以这张表的设计不符合

2017-11-21 21:33:06 4568 3

原创 第五章 数据库完整性

国际惯例:本章主要的内容一览: 概述数据库的完整性是指数据的正确性和相容性。正确性是指数据符合现实世界语义,符合当前的情况,相容性是指数据库同一对象在不同关系表中的数据是符合逻辑的。实体完整性定义实体完整性关系模型的实体完整性是在创建表的时候用主码PRIMARY KEY来定义。实体完整性其实就是主码不为空且唯一。 例: create table student( sno varcha

2017-11-19 16:28:59 822

原创 第四章 数据库安全性

先来一张本章节内容的思维导图 数据库安全性概述概述数据库安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。数据库不安全因素非授权的用户对数据库恶意存取和破坏数据库中重要或敏感信息泄露安全环境的脆弱性:数据库的安全性与计算机系统的安全性是紧密相关的。包括计算机硬件,操作系统,网络系统的安全性。数据库安全性控制用户身份鉴别存取控制:主要包括定义用户权限和对用户的合法权限的

2017-11-19 12:04:08 605

原创 第三章 关系数据库标准语言SQL

内容一览概述结构化查询语言(Structured Query Language,SQL)是关系数据库标准语言。SQL的特点综合统一:SQL集合数据定义、数据操纵、数据控制于一体,语言风格统一。高度非过程化面向集合的操作方式一种语法多种使用方法:SQL是独立语言,也是嵌入式语言,可以嵌入到多种高级语言如JAVA、C、C++中去。数据定义模式定义模式create schema <模式名>

2017-11-17 14:41:20 3234

原创 Binary Tree Level Order Traversal LeetCode

题目https://leetcode.com/problems/binary-tree-level-order-traversal/description/思路很明显的广度优先遍历,使用队列保存入队元素,当遍历一个节点时,先把父节点入队,然后依次是左孩子节点和右孩子节点,由于队列的现金先出,所以出队,就可以 一层一层的输出树中的元素。但是这个题目的难度在于你怎么把一层的节点值放到不同的list中去。

2017-11-15 23:16:13 205

原创 Mysql基础学习笔记

本博客只作为个人学习笔记使用。数据库操作以创建名为”my”的数据库为例子: 创建数据库:create database my; 查看已有的数据库:show databases; 查看数据库:show create database my; 修改数据库编码:alter database my character set utf8; 创建数据库的同时指定编码:create database m

2017-11-12 21:30:10 639

原创 手写最大堆(Java实现)

最大堆最大堆和最小堆是二叉堆的两种形式。 最大堆:根结点的键值是所有堆结点键值中最大者,且每个结点的值都比其孩子的值大。 最小堆:根结点的键值是所有堆结点键值中最小者,且每个结点的值都比其孩子的值小。最大堆的父元素与子元素的索引有如下关系在最大堆中,设根节点索引从1开始,当父节点索引为i时,左孩子节点2*i , 右孩子索引2*i+1。实现最大堆定义最大堆的数据结构和构造函数 堆中数据的存储我们

2017-10-09 21:23:51 4809 1

原创 一个没有bug的二分查找算法

二分查找算法 //二分查找要针对顺序数组 public static int search(int arr[],int value){ int l = 0,r = arr.length; while(l<=r){ //这样求得的mid值就不会出现溢出的问题,若写成int mid = (l + r) / 2;可能出现溢出

2017-10-09 21:01:00 670

原创 手写二叉搜索树(Java实现)

二叉搜索树的概念二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉搜索树的代码实现定义二叉搜索树的数据结构及基本方法 //定义树节点public clas

2017-10-09 20:45:57 1909

原创 Shell实战之系统信息分析

案例介绍利用shell脚本获取系统的信息和系统当前状态信息,如系统的名称版本,系统当前的负载,磁盘使用情况等。该案例一共包括两个脚本文件: 1、monitor.sh (主控制脚本) 2、sys_monitor.sh(系统信息监控脚本文件) 3、test.sh (测试主控脚本,没什么实际用处)准备在linux上新建一个文件夹shell1,然后在里面新建三个.sh文件:monitor.sh、sys

2017-09-27 12:12:50 472

原创 手写快速排序

快速排序简介快速排序是一种很不错的排序算法,算法复杂度为n*logn。快排使用了分而治之的思想,每次排序是都找到一个基准(我们学习时经常使用第一个作为基准),然后把小于基准的元素放到基准元素的左边,大于基准的元素放到基准元素的右边,这样一次排序下来,基准元素左边都是小于(等于)基准的数,基准右边的元素都是大于(等于)基准的元素了。快速排序关键点就是找到这样一个基准并将其放到恰到的位置。算法思路定义一

2017-09-25 20:34:21 10037 2

原创 图解归并排序

图解归并排序

2017-09-19 10:22:16 3189

原创 Shell编程之流程控制

判断文件类型-d:文件是否存在,若存在且为目录 -e:文件是否存在 -f:文件是否存在且是否只是普通文件 例子:[ -e /home/lcl/lab3.txt ]是判断/home/lcl/lab3.txt文件是否存在,注意中括号前后必须带空格判断文件权限-r:文件是否存在且有读权限。 -w:文件是否存在且有写权限。 -x:文件是否存在且有执行权限。文件比较文件1 -nt 文件2 :文件1是

2017-09-18 11:31:06 477

原创 Shell编程基础

变量查看变量:set 删除变量:unset 变量名 设置环境变量:export 变量=变量值 查看环境变量 :env环境变量PATH 查看环境变量:echo $PATH 增加环境变量:$PATH="$PATH":/要添加的路径环境变量PS1 输出PS1:echo $PS1设置环境变量PS1: 系统语系查看语系:locale 输出系统当前语系:echo $LANG 查看系统默认语系:

2017-09-17 17:56:36 304

原创 Linux学习笔记之工作管理

工作管理将进程放入后台一些进程执行需要一些时间,我们可以把它放入后台执行以便在前台可以执行其他操作,将进程放入后台有两种方式: 1、在命令行后面加 ”&”:放入后台执行 2、按Ctrl+Z:放入后台暂停执行查看看后台工作jobs -l:-l显示是工作的pid 后台进程恢复到前台:fg %工作号 前台恢复到后台: bg %工作号后台命令脱离终端执行第一种方式:将后台命令加入到/etc/rc.l

2017-09-17 17:24:50 307

原创 Linux学习笔记之进程管理

查看进程ps auxa:显示所有,u:显示进程所属用户,x:显示没有控制终端的进程ps -le-l:长格式显示,-e:显示所有进程显示进程树pstree [选项]-p :显示进程的PID,-u:显示进程所属用户查看系统健康状态 top [选项] 效果: 上面几个比较重要的参数:load average后面三个参数是前1、5、15分钟的平均负 载 。CPU空闲率74.7%id,空闲内存3

2017-09-17 16:59:53 307

原创 Linux学习笔记之服务管理

按安装方式将服务分类RPM包安装的服务 查看服务自启动状态:chkconfig –list chkconfig –list查看的是服务的自启动状态,并不代表服务现在是启动还是未启动的。 RPM包安装的服务在默认位置,不需要指定源码包安装的服务 服务安装的位置:一般安装在:/usr/local下 源码包安装的位置需要管理员设定。RPM包安装和源码包安装方式的不同导致对两种方式安装的管理也不同

2017-09-13 22:41:36 250

原创 Linux学习笔记之权限管理

文件权限权限 -rw-r–r– r:读,w:写,x:执行 第一位“-“表示文件,d表示目录,l表示软链接文件 所有者权限:rw-,所属组权限:r–,其他人权限:r–权限修改 一般我们使用如下方式修改权限: r对应数字4,w对应数字2,x对应数字1 修改文件file1的权限 chmod 755 file1 755 <==> rwxr-xr-x对于目录来说,最高权限是w 对

2017-09-13 00:37:35 347

原创 Group Anagrams LeetCode 解题报告

题目Given an array of strings, group anagrams together.For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], Return:[ [“ate”, “eat”,”tea”], [“nat”,”tan”], [“bat”] ] Note: All input

2017-09-11 13:15:47 308

Postman windows 64位

可以用的postman啦,国外网站下载比较慢。于是上传到这里供大家下载,为了您更快的下载,特地压缩了,希望对你有帮助!

2018-07-26

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

TA关注的人

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