自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 入职一周多的感受,领悟

上上周4从携程离职,7月2号加入了字节跳动大家庭。来这边还是  做server,按照老大的话就是说给大家服务,哈哈。这边主要的业务线是 抖音,musical.ly,tik tok .都是很年轻的产品,很年轻的血液注入到了现在的互联网中。这边大家都是mac办公,编码,整体给人 很geek的感觉,捡起了我以前倒腾mac的劲,开始了命令行之旅。由于是社招,很多时候还是有压力的,虽然大家 都让 把问题抛出...

2018-07-12 00:55:05 2373 1

转载 Golang处理JSON(一)--- 编码

转自:https://www.jianshu.com/p/f3c2105bd06bJSONhttp的交互的生命周期包含请求和响应。前面我们介绍了很多关于发起请求,处理请求的内容。现在该聊一聊返回响应内容了。对于web服务的响应,以前常见的响应是返回服务端渲染的模板。浏览器只要展示模板即可。随着Restful风格的api出现,已经前后端分离,更多的返回格式是json字串。本节我们将讨论在golang...

2018-07-12 00:41:38 929

转载 基于Redis的分布式锁到底安全吗(上)?

大牛博文链接:http://zhangtielei.com/posts/blog-redlock-reasoning.html 网上有关Redis分布式锁的文章可谓多如牛毛了,不信的话你可以拿关键词“Redis 分布式锁”随便到哪个搜索引擎上去搜索一下就知道了。这些文章的思路大体相近,给出的实现算法也看似合乎逻辑,但当我们着手去实现它们的时候,却发现如果你越是仔细推

2017-12-28 22:08:46 344

转载 跳表SkipList的原理和实现

原文地址:http://kenby.iteye.com/blog/1187303 ,http://imtinx.iteye.com/blog/1291165为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考

2017-12-27 22:28:26 691

原创 OS技术交流群(200255678)

主要聊开源技术的东西

2017-11-08 23:16:10 316

原创 后面要做的事,立即做

桌子,椅子,除了工作每天必须coding自己感兴趣的东西。

2017-11-01 00:40:23 302

转载 Zookeeper 初体验之——JAVA API 初探

简介Apache Zookeeper 是由 Apache Hadoop 的 Zookeeper 子项目发展而来,现在已经成为了 Apache 的顶级项目。Zookeeper 为分布式系统提供了高效可靠且易于使用的协同服务,它可以为分布式应用提供相当多的服务,诸如统一命名服务,配置管理,状态同步和组服务等。 Zookeeper 接口简单,开发人员不必过多地纠结在分布式系统编程难于处理的同步和

2017-09-30 16:30:14 813

转载 基于zookeeper实现分布式锁

原文链接(http://blog.csdn.net/sunfeizhi/article/details/51926396)一、分布式锁介绍        分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍        在介绍使用Zookeeper实现分布式锁之前,首先看当前的

2017-09-30 16:08:41 343

转载 java 多线程 CountDownLatch用法

原文链接(http://zk1878.iteye.com/blog/1002652)CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。主要方法 public CountDownLatch(int count); public void countDown(); public void aw

2017-09-30 16:06:27 197

转载 聊聊并发——Fork/Join框架介绍

(转自:http://www.infoq.com/cn/articles/fork-join-introduction)1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框

2017-08-18 00:59:27 245

转载 关于生产者-消费者-订阅者模式的那些事

生产者/消费者模式简介用来干嘛的?生产者/消费者模式的产生主要目的就是为了解决非同步的生产与消费之间的问题。什么是非同步呢?比如我刚刚生产了某个产品,而此时你正在打游戏,没空来取,要打完游戏来取,这就导致了我生产产品和你取产品是两个非同步的动作,你不知道我什么时候生产完产品,而我也不知道你什么时候来取。而生产者/消费者模式就是解决这个非同步问题的,因为肯

2017-08-18 00:55:25 393

转载 聊聊并发——生产者消费者模式

(转自:http://www.infoq.com/cn/articles/producers-and-consumers-mode?utm_source=infoq&utm_campaign=user_page&utm_medium=link)在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。为什么

2017-08-18 00:54:23 255

转载 Mysql 会导致锁表的语法

(转自:http://blog.csdn.net/yonghumingbuzhidao/article/details/8330795)最近再找一些MySQL锁表原因,整理出来一部分sql语句会锁表的,方便查阅,整理的不是很全,都是工作中碰到的,会持续更新笔者能力有限,如果有不正确的,或者不到位的地方,还请大家指出来,方便你我,方便大家。此测试环境mysql 5.5 基于inn

2017-08-17 10:49:34 696

转载 Java实现SOAP协议

Java实现SOAP协议(转自:http://blog.csdn.net/bestlove12345/article/details/51849631) SOAP是把基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。准备:1. 准备一个web server。Tomcat 下载地址 http://tomcat.apache.org/本例使

2017-07-23 11:50:55 1780

原创 dubbo-admin项目部署

附件为解压后的dubbo-admin.war 包,版本为2.5.4,直接将他解压后替换 tomcat/webapps 下的ROOT的文件夹,然后需要修改ROOT/WEB-INF文件夹下的dubbo.properties,dubbo.registry.address=zookeeper://127.0.0.1:2181//这里换为你自己的地址和端口dubbo.admin.root.passwo

2017-04-28 22:24:18 505

原创 单一使用Mybatis, SqlSession 注意项

这是读取mybatis配置得到SqlSessionFactory的代码块public static org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory; static { String resource = "mybatis-config.xml"; InputStream inpu

2017-04-02 18:01:47 1344

原创 shell小白 想玩自动化部署,无密码ssh 登录远程服务器,执行scp命令传送war包 并重启tomcat。

一个演示demo,首先scp命令 发送 test.clss 到远程服务器登录目录(可以指定目录,真实环境应该指定到tomcat安装目录的webapps 文件夹目录下),并会ssh连接登录到服务器。如果没有配置无密码shh登录会要求你输入两次密码。#!/bin/shcd /usr/local/software/apache-tomcat-7.0.76/binbash ./shutdown.

2017-03-19 19:47:51 1289

原创 记录一次操作git 的愚蠢行为(本地代码只 git add 过,没有 commit ,push 过,然后版本回退 导致本地代码丢失)

这周三在公司pull了远程仓库的最新代码,发现代码编译后报错了。当时不知道没睡醒还是什么没想到 git log 去查看新版本的commiter,然后去交流请教问题.然后自己想到了本地版本回退,回到到上一个编译没有报错的版本,但git 里面水太深了, 因为我本地也有自己的代码,并且一次没有提交过,回退成功后发现确实没有报错了,但是突然发现我自己的代码全没了,当时吓出汗来了。然后马上google 希望

2017-02-25 20:50:20 9085 2

原创 第四次到上海,这里正下着小雨

第一次  到上海google 比赛,留下了美好的回忆,激励了自己第二次 到点评实习,第一份工作,过程很是艰辛,第三次 携程面试,美好的回忆。第四次,靠自己的双手再去争取了。

2017-02-03 23:25:53 273

原创 spring-boot 基础入门

过去我们web服务端框架配置一般是SpringMVC+Spring+Mybatis,最近因为准备做一个第三方平台接口,写一个restful 风格的http api,所以学习了spring-boot,这里讲一下一些基础的配置——初探 The recommended way to get started using spring-boot in your project is with a d

2017-01-13 15:35:07 397

原创 2016-2017的部分历程和小目标

2016/03-2016/5(春招找实习的日子) 在3月份开始了电话面试之旅,因为人是在重庆。阿里➡️蘑菇街➡️大众点评➡️58同城➡️饿了么,最后拿到大众点评的实习offer(Java研发)和饿了么的实习offer(py研发,最后hr打电话之前我给一面面试官前辈发邮件拒绝了),阿里当时是最想进的一家公司,内推面试的部门是淘宝,一面面试官前辈跟我在电话里聊嗨了,还提醒我让我下去看一些二面肯定会问

2017-01-11 20:00:19 449

原创 一些 web 前后端分离的坑与疑惑

最近在在跟前端的哥们写一个小项目,我们采取的是比较暴力的前后端分离开发模式 后端只提供 ajax json 格式的数据接口, 前端解析数据,渲染 相当于 后端和前端分开部署在不同的服务器上 第一个问题 ajax 跨域,目前后端解决方案: res.setHeader(“Access-Control-Allow-Origin”, “前端站点 ip”);

2016-11-04 09:57:59 7398 9

原创 github,怎么向开源项目贡献自己的代码和协作

醉了,有几张上传到开源中国服务器的图片挂了。。今晚修复下。。。2016-12-29 23:30 已修复,(上传到开源中国服务器的图片挂了还不承认。。醉了。。)摘要: 同步更新上游远程库,减少冲突。git命令这里我没有做过多的解释,想学习的百度 git廖雪峰 前辈。这几天在网上找了一些类似的博文看了一下,基本用不了,然后其他基本都是转载第一篇博文的——–最后禁止转载。。。你们懂那种换关键字搜过去搜过来

2016-10-30 23:55:18 7194 1

原创 Github 第三方授权登录教程

Github 第三方授权登录教程大致流程图1.首先注册一个github帐号,Applications>Developer applications>Register a new application. 2.填入参数Application name--应用名称,随意填Homepage URL--如上图可以填本地地址进行测试,127.0.0.1:port/xx/xxApplication de

2016-10-25 10:00:20 20485 11

原创 Hashmap 源码分析

Hashmap 源码分析put()null的处理,重复key的处理,hash冲突的链表处理indexfor() hash算法从而获得槽点的巧妙用处 public V put(K key, V value) { //空表处理 if (table == EMPTY_TABLE) { inflateTable(threshold); }

2016-07-03 22:37:56 403

原创 AisMVC,一款仿SpringMVC框架的轻便快捷的Java MVC开发框架

前言 写这个框架的意义在于过去使用springmvc框架作为项目中的Controller层,springmvc的简洁配置和使用让我们选择了它,但这个框架我用着也发现了它也有很多冗余功能的地方。我们团队开发web项目一般采用前后端分离,所以后端的的Controller层的功能仅仅只有提供ajax接口,页面集成后的跳转,过滤器和拦截器,所以我就想着自己写一款仿springmvc的mvc框架作为自己和团队以后的开发中小型项目的框架,舍掉冗余的部分,只要项目中实际需要的功能

2016-06-26 13:31:12 1251

原创 Java实现简单的顺序队列

队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。队列的存储结构及实现队列的顺序存储结构(1) 顺序队列的定义: 队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表。(2)顺序队列的表示:和顺序表一样,顺序队列利用内存中一段连续的存储空间来存放当前队列中的元素。由于队列的队头和队尾的位置是变化的,设置两个指针front和rea

2015-12-22 20:03:56 1830

原创 Java实现简单的栈

栈的定义       栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。      (1)通常称插入、删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom)。      (2)当表中没有元素时称为空栈。      (3)栈为后进先出(Last In First Out)的线性表,简称为 LIFO 表。       栈的修改是按后进先出的原则进行。每次删除(

2015-12-21 20:46:26 555

原创 java实现简单的单链表结构

链表(Chain本文所说链表均为单向链表,以下均简称单向链表)实际上是由节点(Node)组成的,一个链表拥有不定数量的节点。而向外暴露的只有一个头节(Head),我们对链表的所有操作,都是直接或者间接地通过其头节点来进行的。节点(Node)是由一个需要储存的对象及对下一个节点的引用组成的。也就是说,节点拥有两个成员:储存的对象、对下一个节点的引用。下面给大家放一张网上的图,这样更清晰,下面

2015-12-21 20:36:11 3421

原创 从Java中堆内存和栈内存分配中详谈String使用equals和==比较的区别

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间。比如void func(){    Object obj = new Object();//这个obj在函数的栈里。}class Test{   pri

2015-12-15 21:48:16 602

原创 Java中堆内存和栈内存详解

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器

2015-12-15 19:55:15 433

原创 Java内存管理:深入Java内存区域(深入理解Java虚拟机的第2章内容,加上个人浅显理解)

概述:  对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。  对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄漏和内存溢出问题

2015-12-15 19:53:38 384

原创 Java Timer 定时器的使用

设置定时任务很简单,用Timer类就搞定了。 一、延时执行首先,我们定义一个类,给它取个名字叫TimeTask,我们的定时任务,就在这个类的main函数里执行。代码如下:package test;import java.util.Timer;public class TimeTaskTest {   public static void main(Strin

2015-08-03 21:34:06 373

转载 SimpleDateFormat使用详解

public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用DateFo

2015-08-01 13:26:24 354

原创 SpringMvc+Spring+Mybatis 环境集成

1、基本概念1.1、Spring        Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBea

2015-07-31 21:39:24 537

转载 java插入算法

1. 遍历算法(遍历二叉树6种方法)1.1. 概述遍历算法针对二叉树而言的,主要有先序、中序、后序三种遍历顺序,三种顺序又分别有递归和常规算法,二叉树遍历的主要思想是:遍历左子树,遍历右子树,访问根节点,由这三者的遍历顺序来确定是先序、中序还是后序。下面只要求掌握递归遍历算法,常规遍历算法见附录一。1.2. 先序遍历算法遍历顺序:访问根节点,遍历左子树,遍历右子树。代码如下:void preOrd

2015-04-21 15:50:39 570 1

原创 SpringMvc 上传文件优化

项目.xml 和hello-servlet.xml配置文件在上一篇可以找到,直接贴上后台代码package com.gaorui.Controller.Annotation;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.Inp

2015-04-20 21:16:26 997

原创 SpringMvc下实现文件上传

1  项目.xml配置文件<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocati

2015-04-20 20:38:55 544

原创 利用Smartupload工具包实现上传下载

1.02.jsp 前台页面String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>      ">       

2015-04-10 16:05:33 665

原创 Servlet和Jsp实现原生的上传与下载文件

1.01.jsp 前台代码String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>      ">

2015-04-08 22:22:02 4024 6

AisMVC.zip

#AisMVC,一款仿SpringMVC框架的轻便快捷的Java MVC开发框架 ####前言 * 写这个框架的意义在于过去使用springmvc框架作为项目中的Controller层,springmvc的简洁配置和使用让我们选择了它,但这个框架我用着也发现了它也有很多冗余功能的地方。我们团队开发web项目一般采用前后端分离,所以后端的的Controller层的功能仅仅只有提供ajax接口,页面集成后的跳转,过滤器和拦截器,所以我就想着自己写一款仿springmvc的mvc框架作为自己和团队以后的开发中小型项目的框架,舍掉冗余的部分,只要项目中实际需要的功能 ####这个框架暂时还没有经过严密的测试,所以想使用的同学我在这里说声抱歉,虽然我自己通过maven打成jar包测试过,但暂时没有用于实际开发的打算,第一是自己一个人的实力有限还是怕真实运用中出现自己不能解决的问题,其实我目前内心的真实想法是告诉大家一个mvc框架到底是怎么实现的,springmvc框架想一下吃透也不现实,如果通过我的这个框架大家也有写框架的动力和思路我也是我想看到的,也想告诉大家只要动起手来自己也能写框架,有些东西不是说说而已。很多人或许会说现在mvc框架这么多,你的这个算什么啊?但我想说现在很多时候我们百度搜索的资料来自前人,很多都是5,6年前的老资料了,我也不想以后我们的后辈通过搜索引擎搜出来的还是我们这个时候搜出来的前人总结,开发的资料。我想我也应该留点东西了。 ####框架流程图 ![me](http://o9beglkd1.bkt.clouddn.com/B21B9E90-F3A9-4C2D-8BEA-A0375CE87CD8.jpg) ####功能代码演示 ```Java /** * Created by gaorui on 16/6/14. */ @Controller public class test { /** * @author gaorui * @param s1 * @param s2 * @param request * @param response * @param session * 普通url处理 */ @MapURL(value = "get",RequestMethod = RequestMethod.GET) public void get(String s1,String s2,HttpServletRequest request, HttpServletResponse response, HttpSession session){ return; } /** * @author gaorui * @return String * 服务端跳转页面处理,默认 web-inf下所有 .html文件 */ @MapURL(value="foward") public String foward(){ return "page/succ"; } /** * @author gaorui * @param userid * @return Object * 服务端处理前端ajax请求,返回json数据 */ @MapURL(value = "getUser", RequestMethod = RequestMethod.GET) @ResponseBody public JSONObject getUser(int userid){ JSONObject jsonObject = new JSONObject(); jsonObject.put("userid",userid); return jsonObject; } } ``` ####mvc框架功能介绍 * 注解实现 * @MapURL注解实现http请求路由 * 反射实现方法参数注入 * String返回类型方法转发请求 * @ResponseBody注解实现ajax接口 * 增加config.ini配置文件,实现定向动态扫描项目中的@Controller 类 * 增加注解参数RequestMethod 默认http请求类型,请求类型不合法返回405状态码 ####commit log * 1.0 初始化项目 * 1.1 dhy join * 1.2 mvc框架功能雏形 * 1.3 增加handlerMapping处理器映射,控制器卸耦 * 1.4 增加config.ini配置文件,实现定向动态扫描项目中的@Controller 类 * 1.5 增加注解参数RequestMethod 默认http请求类型,请求类型不合法返回405状态码 * 1.6 下一步准备做项目的容错处理,过滤器准备用原生的不准备加入框架 * 1.7 修改部分目录结构,画框架整体流程图,后面继续做容错处理和性能优化

2019-06-17

dubbo-admin-2.5.4.war

dubbo-admin-2.5.4.war

2017-06-08

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

TA关注的人

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