自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hjr的博客

记录从进入程序员这一行积累的各种知识,随笔向,非教学科普

  • 博客(182)
  • 资源 (3)
  • 收藏
  • 关注

原创 hjr-JAVA 枚举的使用技巧

当我们代码中有静态常量的时候,可以把常量移动到枚举里举一个key value形式的枚举例子如 一周七天 要做七件事public enum Day{ d1("d1", "打球"), d1("d1", "玩游戏"), d3("d3", "吃饭"), d4("d4", "睡觉"), d5("d5", "指看电视"), d6("d6", "听歌"),...

2019-10-17 16:04:47 151

原创 hjr-JAVA 关于文件上传与解压与excel导出

<form method="post" action="url" <input type="file" name="uploadFile"/> <br/><br/> <input type="submit" value="上传"/> </form>上述前端是一个最简单的...

2019-10-16 19:34:03 187

原创 hjr-SQL-语句的优化

语句分析首先在查询语句前面加上explain然后看type 列,是索引生效的不同类型system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ...

2019-09-19 16:15:57 257 1

原创 hjr-JAVA SpringMVC+Mybatis-generate 模型设计

控制器接收参数可以用 public WarpJson fun(@RequestBody ModelVo modelVo,@RequestParam("id") String projectId,Integer page, Integer size){ ModelDTO modelDTO = mapper.query(); }此处 @RequestBody 和 @RequestPar...

2019-09-11 17:11:55 182

原创 hjr-关于树

二叉排序树(二叉查找树):

2019-08-02 10:00:33 281 1

原创 hjr-JAVA Redis使用详解

使用redis是KV型的内存数据库,在java中使用Redis,需要在Pom中引用Jedis包,之后新建Config类进行基本配置,在使用处例化Jedis,之后对Redis进行各种操作常用数据结构String 、Set 、Sort Set、Hash、List、Set持久化机制RDB(默认):指定的时间间隔内将内存中的数据集快照写入磁盘,会生成dump.rdb文件,重启后加载改文件...

2019-07-29 09:56:12 228

原创 hjr-java源码: SimpleDateFormat

使用单例,因此只能getInstance而不能直接newgetInstance:做一个判断,如果已经存在则直接获取对象,不存在会new 一个对象HashMap:数组+链表的结构equals :内部重写了对Interger的处理,会自动转化为int,因此Interger a=5,int b = 3,用equals比较后相等。...

2019-07-25 10:01:34 187

原创 hjr-设计模式:单例模式

使用单例,使用getInstance而不用newgetInstance:做一个判断,如果已经存在则直接获取对象,不存在会new 一个对象

2019-07-24 15:56:07 152

原创 hjr-JAVA JVM调优

理解JVM 执行顺序 : class文件-》类装载器 - 》内存区-》执行引擎类加载器采用parent模型避免父子加载器重复加载,主要包含,java内部库加载器-》java扩展类库加载器-》程序员代码类加载器-》程序员自定义的类加载器其中内存区主要包含 方法区 虚拟机栈 本地方法栈 堆 程序计数器内存分为静态内存(方法区,栈)和动态内存(堆),静态内存回收方式是固定的,GC指的是动态...

2019-07-24 11:02:51 316

原创 hjr-linux:nginx负载均衡

在集群系统中,请求 ->nginx->分发到多个tomcat服务器DNS层可以采用一个DNS service 把请求的网址解析成多个ip,每个ip对应到一个tomcat服务器服务器层可以在nginx的conf文件中把多个服务器的ip配置好,然后设置转发规则,对请求做反向代理转发到不同Ip轮换转发随机转发权重转发单点问题只有一个nginx做转发,如果故障,会出现单点...

2019-07-19 17:29:46 248

原创 hjr-几种排序算法

稳定:排序的数组里面重复的元素相对位置不会改变冒泡排序n*n次遍历,两个for循环嵌套。每次比较都把小的值往左移动插入排序参考扑克牌,每次抓到一张新牌,从左往右对已有的排序好的牌一一比较,插入比左侧大的地方,已排序好的数组从0不断增大快速排序法先随便选一个值,比如第一个做为中点,然后遍历数组,把小于的放到左边,大于的放到右边,然后对左右两个数组再次采取该操作,直到最后所有的...

2019-07-19 15:11:55 117

原创 hjr-JAVA :多线程锁与分布式锁与分布式事务

多线程锁死锁死锁分为两种,一个线程获取到锁,没释放的时候再次获取该锁,造成死锁可以通过可重入锁避免可重入锁:线程获取一个资源的锁,可以再次获取该资源的锁,建立一个标志数,没获取一次,标志数加一,每释放一次,标志数减一,标志数为0,解锁线程a获取资源1的锁同时等待资源2,线程b获取资源2的锁同时等待资源1,这样线程a和b进入死锁可以通过修改资源访问顺序的方式避免死锁,把线程a和...

2019-07-08 16:49:07 1199

原创 hjr-java源码:HashMap

理解散列算法:把多个数据用少量数据标记出来hashing(哈希):标记是hashcode的散列算法HashMap的结构是包含多个HashCode的数组,每个HashCode对应一个Bucket(桶),每个桶是一个LinkList(链表),链表里面存储的是多个Entry(键值对+next+hash值)HashMpa.put(对象)对象就是一个Entry,程序员控制键值对的内容,nex...

2019-07-04 11:40:23 192

原创 hjr-linux:centos7 docker

理解docker是安装在linux 系统里的一个程序这个程序有linux的内核docker可已安装多个镜像所有镜像共用docker里的Linux内核镜像是一个程序包比如nginx镜像,php镜像,tomcat镜像,等安装镜像避免了直接把程序安装到linux系统,而是安装到docker中docker相当于在服务器linux系统中隔离出一层可以理解成微型的虚拟机虚拟机可以安装各种操...

2019-07-03 17:30:15 128

原创 hjr-SpringBoot: webservice

如果你用springboot时遇到了webservice启动成功了,但是其他的接口却变404了配置文件可以参考下文webservice有别于控制器里的api同一个端口,可以同时发布webservice服务和普通api可以这么建项目com.xxx.xxx–controller–webservice其中controller文件夹里都是api接口webservice文件夹里都是webs...

2019-05-15 13:24:25 222

原创 hjr-最简单的大数据理解

网上的大数据数据库 各种框架 各种概念 我觉得是次要的,有各种基础的,很快就可以学的差不多怎么做我觉得首先在网站 或 app 中埋点,就是各个页面,各个代码地点 写上一段脚本,作用是把当前用户和用户的操作传到后端,然后后端把相关数据都存到日志文件中。后端也要用自身的aop日志功能,把用户访问各个方法的操作和当前用户信息都存到日志文件中。现在我们有了很大的日志文件描述了各个用户的各种操作,...

2019-04-28 16:57:01 383

原创 hjr-MUD游戏(七):挂机功能的实现

挂机的设计思路是,先设置开始挂机时间,当结束挂机的时候用当前时间减去开始挂机时间,然后根据奖励公式,计算出奖励即可。这里的奖励公式指的是,每隔多少时间获得多少奖励,这里可以使用比如高斯曲线 贝塞尔曲线,或者直接一条斜线(奖励 = k*t) 随意。时间一般分为游戏时间和现实实现,我这里建议用现实时间进行计算当用户触发挂机操作的时候,把当前时间和用户id存入数据库,然后当用户领取奖励的时候。进...

2019-04-25 14:13:33 2081 2

原创 hjr-MUD游戏(六):多线程锁ThreadLocal和Synchronized

怪物g 有100点血量勇士a和勇士b 分别有1点攻击力使用情景现在两种情况a与b未组队,我们需要保证a与b对g的攻击后,g的血量变化对两个人是独立的,那么我们对g加锁就要用ThreadLocala与b组队,a与b对g攻击后,g的血量对两个人是共享的,那么我们对g加锁就要用Synchronized拿spring举例,我们都知道spring每个请求会创建一个线程,默认又是单例模式现在...

2019-04-19 12:13:20 429

原创 hjr-JAVA 多线程

基础多个线程访问一个共享数据时,加锁(事务)使其按顺序访问,是线程安全的多个线程访问一个共享数据时,没锁,可能出Bug,是线程不安全的继承Thread类或实现Runable接口 可以开启新线程。Thread t = new Thread();是例化一个新线程对象,多次执行会例化多个新线程对象,t.start()是开启一个新线程,代码会执行该线程里面的内容同时继续执行下面的代码,多次...

2019-03-28 16:43:31 186

原创 hjr-SQL-ORECAL

客户端安装DBvisualizer,连接时候,输入ip,端口,用户名,密码就可以,在配置文件里可以找到操作打开cmd ,file->new sql cmd时间长不操作需要右击 数据库 ->connet重新连接找到表schemas,里面有很多用户,每个用户有不同的表,找到带default的,一般用的是这个用户//oracle查看当前数据库名 select SYS_CON...

2019-03-26 18:01:32 175

原创 hjr-JAVA:maven打包springboot和springmvc

先在resource文件夹里面新建三个文件夹,dev,test,prod,然后把同名配置文件做成三份,分别放到里面,通用配置文件放到最外面。一般我们springMVC项目打包war包 <profiles> <profile> <id>dev</id><!--执行打包命令时将使用此处的id进行定位--> <prop...

2019-03-20 17:50:51 239

原创 hjr-SpringBoot:springboot 与 spring版本 与 mongodb spring-data和注入bean的方式

版本用mongodb对版本进行解释比较下面三个maven pom依赖1、spring-boot-starter-data-mongodb --- springboot2、spring-data-mongodb --- spring3、mongo-java-driver --- 普通java包上面三种方式都可以实现maven引用mongodb驱动 jar包。1的特点是不需要...

2019-03-13 17:42:10 4027

原创 hjr-MUD游戏(五):字符串与二进制与protobuf通信

网络通信时通常我们传输字符串或二进制这里以websocket为例,传输字符串在frame-&amp;gt;ws中能够看到每次通信传输的内容传输二进制只能看到 Binary Frame字符串一般传输字符串可以直接传输json,协议头可以采用{&quot;login&quot;:{&quot;username&quot;:&quot;' + username + '&quot;,&quot;password&quot

2019-02-27 17:02:55 740

原创 hjr-JAVA:跨域

有时可能本地正常的项目放到服务器报跨域相关错误前端浏览器报 Access-Control-Allow-Origin 相关错误两种:接口访问(post,get)和静态资源请求都可能报错首先,写一个拦截器拦截所有请求,请求就是request,然后在返回response添加头部 PrintWriter out = response.getWriter(); ResourceB...

2019-02-22 14:49:29 205

原创 hjr-SpringBoot:tomcat 发布 war 包

tomcat 软件安装目录下有个webapp文件夹webapp文件夹下面有个ROOT文件夹现在我们把springmvc项目打包成一个war包idea -》build -》build structure-》选择war包即可打包项目,之后再target文件夹下面可以看到war包然后war包放的位置放到webapp文件夹下运行tomcat,abc.war 会自动解压项目访问路径local...

2019-02-20 15:55:53 144

原创 hjr-SpringBoot:spring boot shiro

先添加依赖 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.shiro&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;shiro-spring&amp;lt;/artifactId&amp;gt; &amp;lt;

2019-01-25 16:43:21 173

原创 hjr-javascrip:npm 和 angular2

npm安装下载最新版node.js并安装,npm已经集成到里面了,在安装时自动添加环境变量配置cmdnpm config set registry https://registry.npm.taobao.orgnpm install -g cnpm --registry=https://registry.npm.taobao.org之后所有的npm指令都用cnpm代替npm unin...

2019-01-24 16:47:43 159

原创 hjr-linux:centos7 配置ftp和java开发环境和mongodb和nginx

ftp配置服务器安全组 入站规则 添加 21 端口vsftpd -v 查看状态yum -y install vsftpd 安装vi /etc/vsftpd/vsftpd.conf 配置 最下面加上 pasv_promiscuous=YESsystemctl statr vsftpd.service 开启服务systemctl status vsftpd.service查看服务状态s...

2019-01-21 15:51:33 194

原创 hjr-JavaScript 各种数据操作

js有几种主要数据类型json字符串: var jsonStr = “{key:value}”数组:var arry = [] 数组 操作 arry[“xxx”] = “xxx”; 或 arry.push();json对象:var json = {} json对象 操作 json.xxx = “xxx”map对象:var map = new Map(); map.p...

2018-10-17 19:45:15 172

原创 hjr-MUD游戏(四):egret编写h5游戏

前言原生android的缺点是不能三端发布,如果编写h5可以一键打包到ios和android,这里建议使用egret引擎,该引擎可以很方便做成网游,通信方式使用websocket,后端我这里使用了springboot,数据库用了mongodb步骤下载egret相关,这里主要用到egret wing,写客户端后台需要两部分,一个是websocket通信处理,负责全部的前后端通信,数据库查询...

2018-10-10 10:17:22 1514

原创 hjr-SpringBoot:spring boot 打包jar包发布

发布方式spring boot发布方式有两种,经典的war包发布和jar包发布,这里介绍下jar包发布流程流程打开idea,点击右上角,运行左侧的下拉框,选择edit configurations点左上角加号新增 Maven,在右侧配置参数,Working directory设置为项目路径,command line 输入clean package点击运行,等待success,在项目目录...

2018-09-18 16:47:53 203

原创 hjr-Android:动画效果

ObjectAnimator transXAnim = ObjectAnimator.ofFloat(myView, "translationX", -100, 300);//此处可以写n个参数,执行时myView从0开始,负的向左正的向右,平移该数字的像素,此效果为先向左100像素,再回到0,再向右300像素。 ObjectAnimator transYAnim = ObjectAnimato...

2018-06-15 09:46:48 223

原创 hjr-JAVA:构建一个大型项目

IDE使用idea,举例一个springclould 微服务系统基础项目包含后台管理,前台官网,h5系统,移动端(android/ios)接口 1.在git或svn新建一个空项目,下载到本地 2. 打开idea,把空项目检出,建一个pom,其中用如下描述项目模组关系&lt;modules&gt; &lt;module&gt;module1&lt;/module&...

2018-03-28 11:57:44 648

原创 hjr-linux:项目部署与svn搭建和jenkins自动化发布

首先在阿里云买服务器,操作系统windows和linux可以随意切换,但文件会消失,操作系统选centos最新版下载xShell,输入主机ip,用户名密码,连接上服务器安装JDK,如果是springboot项目,直接安装并开启ftp,传上去jar包,java -jar xxx.jar就跑起项目了安装svn,创建项目,修改配置文件,在阿里云控制台配置安全组规则,开放3690端口,通过svn:...

2018-03-20 17:49:06 401

原创 hjr-JVM和服务器选择

JVMJAVA编译为Class字节码文件,加载jvm.cfg,根据配置找到jvm.dll,初始化jvm,从main开始执行 堆:线程共享,存放实例对象,没引用指向的被GC回收。 栈:后入先出,程序员分配,线程私有,存各种变量,方法形参,引用对象。每调用一次方法,入栈,结束,出栈同时回收内存,不用GC。tomcat和nginxnginx:http服务器,处理静态资源,可以做静态资...

2018-03-20 14:15:50 3642

原创 hjr-分布式和微服务session管理

对资源A每秒2w次请求,分成两个服务器,服务器1w处理资源A的请求1w次,服务器2处理资源A的请求1w次(集群:水平拓展)对资源A1w次请求,对资源B1w次请求,分成两个服务器,服务器1只处理资源A的请求1w次,服务器2只处理资源B的请求1w次(分布式:垂直拆分)浏览器A请求服务器A登录成功了,保存在Session中 在请求其他功能时,无论是水平拓展还是垂直拆分都有可能请求到其他服务器...

2018-03-14 09:42:55 285

原创 hjr-SQL-SQL优化

ORM框架自带的缓存如mybatis 有一级和二级缓存,一级作用于一个session,二级作用于一个mapper,默认开启一级,想开启二级可以在配置文件中开启 缓存会在第一次执行一个查询sql时,把查询的数据存入缓存,第二次执行相同的sql时,从缓存中读取,当执行增删改时,缓存会被清空。第三方缓存redis(key-value 内存 高速缓存数据库,普通数据库是磁盘)100万人访问一...

2018-03-06 17:13:48 169

原创 hjr-Android:版本控制与项目结构

IDE 使用android studio自动化构建工具 gradle 这个插件as自带,目录在 \AndroidStudio\gradle\m2repository\com\android\tools\build\gradle这个文件夹里可以查看as插件版本,下面的项目build.gradle里面的版本需要和这个一致AndroidStudio\gradle这里可以看到gradle本地插件,也...

2018-02-28 16:26:57 218

原创 hjr-MUD游戏(三):android原生游戏编写

wifi调试手机数据线插电脑上,用android studio做IDE,手机和电脑连接到同一个wifi。 下面的xxx.xxx.x.xxx是手机ip,一般在wifi设置里就能看到。terminal里输入adb tcpip 5555adb connect xxx.xxx.x.xxx:5555初次需要先插上数据线,之后就可以wifi在线调试app了。选择数据库,sqlite...

2018-02-03 14:58:14 2957

原创 hjr-JAVA:WEB支持任意格式视频播放

web浏览器目前用h5 标签即可,只支持特定编码的mp4。 用户很多时候不会转码操作,所以在上传的时候,应在在线自动转码 上传资源一般都存到第三方,存到自己服务器太占空间,在上传同时把视频在线转码为web mp4即可,比如阿里,七牛都有这种服务 如七牛: 建议上传部分用纯前端实现,包括分片上传,只需设置一个参数即可var uploader = Qiniu.uploader({ ...

2018-02-02 12:48:06 1694

各种格式的测试音视频-共24种格式

包含12中格式的测试音频,与12种格式的测试视频 可以测试web上传的转码功能,播放器支持格式等

2018-02-28

$page.pager{}分页

jquery.pager.js,真正的pager 启动:html---<div id="pege"></div> JS---$page.pager{} 可重复初始化,无多次触发错误,带css

2017-09-01

任意视频格式转WEB支持的mp4

一键任意视频格式转WEB支持的mp4,转换后的文件在当前文件夹,以转换后的xxx.mp4文件形式显示

2017-05-10

空空如也

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

TA关注的人

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