- 博客(57)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 ThreadLocal实践
ThreadLocal实践ThreadLocal是什么?源码分析ThreaLocal实践ThreadLocal是什么?ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。而ThreadLocal从本质上讲,无非是提供了一个“线程级”的变量作用域,它是一种线程封闭(每个线程独享变量)技术,更直白点讲,ThreadLocal可以理解为将对1的作用域为“线程级”。
2021-02-23 11:07:11 297 1
原创 二叉树的递归遍历和非递归遍历
二叉树的递归遍历和非递归遍历前续遍历中序遍历后续遍历前续遍历非递归先序遍历的思路如下:1.先将根节点入栈2.访问根节点3.如果根节点存在右孩子,则将右孩子入栈4.如果根节点存在左孩子,则将左孩子入栈(注意:一定是右孩子先入栈,然后左孩子入栈)5.重复2-4--非递归public void preOrder(TreeNode root){ Stack<TreeNode> stack = new LinkedList(); stack.push(root); TreeNod
2020-07-23 22:31:43 228
原创 将文件上传到服务器的通用方法
将字节流上传到目标地址的工具类@Componentpublic class MyHttpClient{ public void recordInfo(String goalUrl, byte[] bytes) throws Exception { long st = System.currentTimeMillis(); String boun...
2018-08-11 16:17:56 2188 1
转载 MyBatis中的#和$区别
#相当于对数据 加上 双引号,$相当于直接显示数据区别: # $ 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是id,则解析成的sql为order by “id” 将传入的数据直接显示生成在sql中。如:orderby将传入的数据直接显示
2017-09-20 15:53:12 419
原创 java面试
一、Java基础实例方法和静态方法有什么不一样?Java中的异常有哪几类?分别怎么使用?常用的集合类有哪些?比如List如何排序?ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和各自适应的场景是什么?内存溢出是怎么回事?ClassLoader有什么用?==和equals的区别?hashCode方法的作用?Object类中有哪些方法?列举3个以上。N
2017-09-16 11:18:13 1042
原创 汉语中数字大写
public class Amount2RMB {/** * 汉语中数字大写 */private static final String[] CN_UPPER_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };/** * 汉语中货币单位大写,这样的设计类似于占位符 */private static
2017-09-01 18:54:33 1194
原创 npm install的时候报错的解决方案
开始学着搭建vue的环境时,按照着https://segmentfault.com/a/1190000008922234 搭建,开始很顺利,到执行npm install 报一下的错误 推测应该是目录读写权限问题,查找了各种资料,才解决,方案如下:①、我们要先配置npm的全局模块的存放路径以及cache的路径,例如我希望将以上两个文件夹放在NodeJS的主目录下,便在NodeJs下建立”node_
2017-08-06 22:46:02 27150
原创 6个月的程序员修炼
尽量用google查找技术资料,镜像网站k3k4.vip。 技术问题在stackoverflow找找,大部分都已经有人回答。 多看官方的技术文档。 ibm developerworkers的文章质量整体上有保障。 平时花一些时间在github上阅读优秀项目源码。入门(1-2 个月)目标:参与简单的项目开发。技能:列表内容掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《
2017-07-26 17:40:25 587
原创 Git常用命令
Git的几个常用的命令,及对应操作的过程图Workspace:工作区Index / Stage:暂存区Repository:仓库区(或本地仓库)Remote:远程仓库一、新建代码库1、在当前目录新建一个Git代码库 $ git init2、新建一个目录,将其初始化为Git代码库$ git init [project-name]如:git init t8t-test3、下载一个项目和它
2017-07-01 15:30:25 1010
转载 用ElasticSearch搭建自己的搜索和分析引擎
原文链接:http://wetest.qq.com/lab/view/300.html一.ElasticSearchElasticSearch(下简称ES)是基于Lucene的一个开源搜索引擎产品。Lucene是java编写的一套开源文档检索的基础库,包括词、文档、域、倒排索引、段、相关性得分等基本功能,而ES则是使用了这些库,搭建的一个可以直接拿来使用的搜索引擎产品。直观地理解,Lucene提供汽
2017-04-14 17:23:31 1485
转载 Git Reset简介
本文编辑整理自:http://guibin.iteye.com/blog/1014369 http://hi.baidu.com/tiger_tnt/blog/item/a0464ffa6a8115d9b58f314d.html http://web.mit.edu/~mkgray/project/silk/root/afs/sipb/project/git/git-doc/git-reset.
2017-03-21 18:17:16 860
转载 Zookeeper的功能以及工作原理
目录目录一ZooKeeper是什么二ZooKeeper提供了什么文件系统1PERSISTENT-持久化目录节点2PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点3EPHEMERAL-临时目录节点通知机制三Zookeeper做了什么命名服务配置管理集群管理分布式锁队列管理四分布式与数据复制1容错一个节点出错不致于让整个系统停止工作别的节点可以接管它的工作
2017-03-13 18:08:00 2321
转载 Hashtable的实现原理
第1部分 Hashtable介绍Hashtable 简介1、和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。 2、Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。public class Hashtable<K,V> e...
2016-10-05 20:18:41 1384
转载 HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表 链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除
2016-10-04 23:16:09 413
原创 线程与进程的区别
一.概念进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.二.进程和线程的关系(1)一个线程只能
2016-10-04 22:37:42 438
转载 JAVA之JVM内存管理和垃圾回收
转载,来自(http://blog.csdn.net/zhangerqing)一、JVM内存的结构Java虚拟机会将内存分为几个不同的管理区,这些区域各自有各自的用途,根据不同的特点,承担不同的任务以及在垃圾回收时运用不同的算法。总体分为下面几个部分: 程序计数器(Program Counter Register)、JVM虚拟机栈(JVM Stacks)、本地方法栈(Native Method S
2016-10-04 12:26:17 512
原创 总结Oracle,MySql,SQLServer的分页查询总结
page:当前第几页 Size:每页显示的记录数SQLServerselect id,name from test limit参数1,参数2; 参数1,从第几条开始 参数2,返回多少条数据JavaWeb中实现分页算法select * from tableName limit (page-1)*size,sizeMySql(top关键字)几乎任何字段,我们都可以通过max(字段)或min(字段)
2016-09-22 23:32:40 598
原创 HashMap HashTable和ConcurrentHashMap的区别
HashMap 是 Hashtable 的轻量级实现(非线程安全的实现) ,他们都完成了 Map 接口,主要区别在于HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。HashMap 允许将 null 作为一个 entry 的 key 或者 value,而 Hashtable 不允许。HashMap 把 Hashtable 的
2016-09-06 20:57:30 1263
原创 腾讯校招模拟面试题之蛇形打印
当输入一个数字N时,构造一个N*N的蛇形矩阵,即矩阵的数字1—N^2从外而内依次顺时针打印 当n=3时矩阵为 1 2 3 8 9 4 7 6 5 当n=5时矩阵为 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9当时候做题的时候想到是顺时针打印法,一直没有做出来,因为自己就是想不出从右到左和左下到左
2016-09-02 20:48:51 726
原创 阿里内推电话面试总结
前天接到阿里巴巴的面试官电话,心情很激动。首先就是自我介绍,就随便介绍了一下。然后就是问问题了,自己答得没有那么理想,就总结了一下,大家可以参考参考,简历的状态还没有变,不知道结果咋样。1.说一说ssh2框架整合的工作流程以及它们各自的功能struts2将jsp中的控制分离出来,当它要执行控制逻辑的具体处理时,就直接使用Spring中的Action组件;Action组件在处理中若要访问数据库,则通过
2016-07-31 12:25:18 3878
原创 几种排序的总结
冒泡法排序比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 * @param numbers * 需要排序的整型数组 */ public static
2016-07-27 14:39:29 415
原创 设计模式之单例模式
一.单例模式定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供。 要想真正的了解单例模式,就要知道它到底是干什么?有什么作用?大部分的人都觉得单例模式是为了省内存,其实一些资源管理器常常设计成单例模式有如下功能。 在计算机系统中,需要管理的资源包括软件外部资源,譬如每台计算机可以有若干个打印机,但只能有一个Printer Spooler, 以避免两个打印作业同时输出到打印机中。每台计算机
2016-06-30 22:40:53 606
原创 解决Git项目不能Pull
这几天以来被一个问题困扰就是我的项目不能Pull,我就很纳闷了,我自己可以提交,但是当队友更新了代码提交到github,自己想更新,居然pull总是报异常,这个异常是The current branch is not configured for pull No value for key branch.master.merge found in configuration这些英文看不懂就百度一下解
2016-05-30 23:26:35 13893 1
原创 用两个栈实现队列与二叉树的镜像
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:队列:是先进先出;栈:是先进后出。由此可见,用两个栈可以实现队列。首先队列push的时候,就只需要把元素放进栈1,这里需要注意的是int与integer的转换,即new Integer(int) 。队列pop的时候,就是把栈1里面的元素放到栈2中,然后将栈2中的元素pop就可以实现了。这里又涉及到将In
2016-05-28 22:54:46 776
原创 青蛙跳阶有关的斐波拉契数列
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。每次看到这种题目,首先想到的是是否有什么规律:每次跳阶有两种选择(n>2),一次跳一阶,那么剩下n-1个台阶,还有f(n-1)跳法,一次跳两阶,那么剩下n-2个台阶,还有f(n-2)跳法。那么当n=1时,f(1)=1;n=2,f(2)=2;n=3,f(3)=3;n=4;f(4)=6……. 发现是一个斐波那契数
2016-05-26 23:12:30 808
原创 剑指offer第二天
给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]。不能使用除法。分析B[i]=A[0]A[1]…A[i-1]*A[i+1]…*A[n-1]得: 从左到右算 B[i]=A[0]A[1]…*A[i-1] 从右到左算B[i]=A[i+1]…*A[n-1] public in
2016-05-25 23:06:58 540
原创 二叉树的深度以及判断平衡二叉树
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度--一个根节点的左右有几个子节点,而该树的深度就是求左右子节点的最大一个+1public int TreeDepath(TreeNode pRoot){ if(pRoot==null) return 0;
2016-05-23 23:14:15 1965
原创 MyBatis之增删改查
什么是 MyBatis?MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。 MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。Hibernate 与myb
2016-05-22 19:51:13 789
原创 hibernate之缓存以及pojo对象的三种状态
一.缓存1.分类a) 一级缓存(存放session) 可以直接使用 私有的 --当查询时,如果有缓存,先查缓存,如果没有,才查数据库 session.clear(); //清除所有缓存 session.evict(s1); //清空一个缓存b) 二级缓存(存放sessionFactory) 需要配置才能使用 b1) 复制二
2016-05-01 17:16:42 1190
原创 Hibernate遇到的几个常见映射异常
1.Caused by: org.hibernate.MappingException: An association from the table sc refers to an unmapped class: com.pojo.Course总是说没有找到这个类的映射,这个是我不记得在hibernate总的配置文件写上它的映射文件了<hibernate-configuration> <se
2016-05-01 16:02:12 1562
原创 Hibernate之单张表的增,删,改,查以及批量操作
一.hibernate步骤1.六个准备(三拷三配):拷jdbc驱动拷hibernate开发包拷 log4j 配pojo(以一张学生表为例,数据库中两个字段。注意:要实现序列化)public class Student implements Serializable { private int sid; private String sname; //...sett
2016-05-01 12:52:11 882
原创 Hibernate的基本工作流程
一.可以分为7个步骤1.通过Configuration对象读取并解析配置文件2.读取并解析映射信息,创建SessionFactory对象3.打开session4.创建事务Transaction5.持久化操作,对对象进行CRUD操作6.提交事务7.关闭session和SessionFactory对象--添加学生package com.test;import org.hibernate.Session;
2016-04-30 19:42:43 5001
原创 确定两串乱序同构
题目描述给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。测试样例: “This is nowcoder”,”is This nowcoder” 返回:tru
2016-04-24 22:25:54 471
原创 在MyEclipse中上传项目到github的步骤(很详细)
一.myelipse安装git插件11.Eclipse的git插件——EGit。下载网址EGit官网:http://www.eclipse.org/egit/download/ 找不到在哪下看这个(http://yunpan.cn/Q4NeYfj8eYApJ)安装:下载的插件解压,删掉XML文件。在MyEclipse的dropins目录下新建一个egit文件夹,然后把刚才解压的features、pl
2016-04-20 20:18:54 7975 12
原创 SSH框架整合
SSH整合(通过手动去引入jar包,而不是自动的添加三大框架的开发能力):1.创建一个web工程:2.引入jar包和配置文件:struts2:需要的jar包: struts-2.3.15.3\apps\struts2-blank.war\WEB-INF\lib\*.jar struts-2.3.15.3\lib\struts2-json-plugin-2.3.15.3.jar
2016-04-18 20:59:14 474
原创 VisualSVN-Server安装图解
运行VisualSVN-Server-2.7.3.msi程序, 如下图点击Next, 下一步选中 I accept选项, 点击Next, 下一步选择默认配置, 服务和控制台组件方式, 点击Next, 下一步点击Standard Edition, 安装标准版 上图中, 红色圈中的部分Location是程序的安装路径. 蓝色圈中的部分Repositories 是存放SVN仓库的路径(注意: 指定一个空
2016-04-16 14:55:13 2706 1
原创 jQuery之定时器及图片轮播实例
定义和用法 setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setInterval() 方法会不停地调用函数,直到clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。语法setInterval(code,millisec[,”lang”]) cod
2016-04-13 11:49:07 8381
原创 jQuery之scroll方法及实例
scroll() 方法定义和用法当用户滚动指定的元素时,会发生 scroll 事件。scroll 事件适用于所有可滚动的元素和 window 对象(浏览器窗口)。 scroll() 方法触发 scroll 事件,或规定当发生 scroll 事件时运行的函数。 语法$(selector).scroll()--js中代码<script type="text/javascript"> x=0;
2016-04-12 16:05:06 3071
原创 jQuery之addClass与removeClass使用实例
常见的用途在HTML里,多个class以空格分隔,当一个节点(或称为一个标签)含有多个class时,DOM元素响应的className属性获取的不是class名称的数组,而是一个含有空格的字符串,这就使得多class操作变得很麻烦。而jQuery已经将原来解析字符串等精细的操作变成了很简洁的API。例如,addClass()就是添加class类名,removeClass()就是移除class类名,这
2016-04-10 10:44:21 4427
原创 jQuery事件
什么是事件?页面对不同访问者的响应叫做事件。事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。如:在元素上移动鼠标。按钮点击 键盘按击常见 DOM 事件: 文档事件 键盘事件 鼠标事件 表单事件 load keypress click focus unload keyup mouseleave blur scroll keydo
2016-04-09 20:48:04 564 1
java课设+mssql的ktv管理系统
2015-12-17
MySQL出现了access violation at address 74786554
2016-03-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人