![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
猫小妖的尾巴
欢迎加入JAVA高级交流QQ群:329019348,互相交流,共同进步。
展开
-
面试题总结
1.请谈谈对volatile的理解volatile是java虚拟机提供的一种轻量级的同步机制,基本遵守了JMM规范,保证多线程可见性、有序性(禁止指令重排序),不保证原子性;synchronized全都可以保证。JMM(Java Memerory Mode):java内存模型,描述的是一种多线程下访问共享内存的规范。对同步的规定:线程加锁前,必须读取主内存一份最新的值到自己的工作内...原创 2019-11-16 15:33:20 · 372 阅读 · 0 评论 -
Java策略模式+反射动态创建对象
Java策略模式+反射动态创建对象原创 2016-10-08 18:46:52 · 2030 阅读 · 0 评论 -
Java实现RSA算法
Java实现RSA算法原创 2016-11-10 15:45:15 · 646 阅读 · 0 评论 -
Java对象之死
Java对象之死转载 2016-10-30 16:01:12 · 292 阅读 · 0 评论 -
Java对象之生
Java对象之生转载 2016-10-19 21:03:47 · 295 阅读 · 0 评论 -
ExcuterService如何确定线程池的大小
ExcuterService如何确定线程池的大小原创 2016-09-17 16:50:08 · 1730 阅读 · 0 评论 -
Java数组长度最大能有多大?
Java数组长度最大能有多大?原创 2016-09-23 15:22:39 · 3426 阅读 · 0 评论 -
RequestMappingHandlerMapping的用法
RequestMappingHandlerMapping的用法转载 2016-09-07 18:27:20 · 5433 阅读 · 0 评论 -
springmvc—handlermapping三种映射
handlermapping负责映射中央处理器转发给controller的映射策略,简单说就是控制中央处理器的请求触发哪一个三种映射方式1.BeanNameUrlHandlerMapping(默认)按照controller的name来映射寻找controlller,它是默认存在的。[html] view plain copy转载 2016-09-07 18:24:02 · 1565 阅读 · 0 评论 -
SpringMVC自定义拦截器详解
HandlerInterceptor接口的代码如下:[java] view plain copypackage org.springframework.web.servlet; import Javax.servlet.http.HttpServletRequest; import Javax.servlet.http.Http转载 2016-09-07 18:21:13 · 412 阅读 · 0 评论 -
SpringMVC中使用Interceptor拦截器
SpringMVC中使用Interceptor拦截器转载 2016-09-07 18:11:47 · 1075 阅读 · 0 评论 -
基于cron表达式的任务调度器Scheduler
package com.yy.ent.idol.common.util.timer;import org.quartz.*;import org.quartz.impl.StdSchedulerFactory;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.Date;原创 2016-09-06 09:48:05 · 1711 阅读 · 0 评论 -
亿级Web系统搭建:单机到分布式集群
亿级Web系统搭建:单机到分布式集群转载 2016-09-05 11:27:41 · 1025 阅读 · 0 评论 -
jvm主内存与工作内存
一、jvm主内存与工作内存 首先,JVM将内存组织为主内存和工作内存两个部分。 主内存主要包括本地方法区和堆。每个线程都有一个工作内存,工作内存中主要包括两个部分,一个是属于该线程私有的栈和对主存部分变量拷贝的寄存器(包括程序计数器PC和cup工作的高速缓存区)。 1.所有的变量都存储在主内存中(虚拟机内存的一部分),对于所有线程都是共享的。2.每转载 2016-11-28 12:07:35 · 6441 阅读 · 5 评论 -
Problem one: Trains
分享一道TW的笔试题吧,该题目考查的是图的存储、深度优先遍历、最短路径等知识点。图共有两种存储方式,第一种是邻接矩阵(二维数组),另外一种是邻接表(map+链表),我采用的是邻接表的一种变种表示法,将链表用map替代了,为了方便通过顶点的值查找到另一个顶点的路径。该题共有10个测试用例,目前只有9个测试用例是通过的,第10道题我目前还没有找到解决方案,前5道题都是用同一种方式来遍历的,用前...原创 2019-03-31 22:29:34 · 742 阅读 · 0 评论 -
Redisson分布式锁实现
一、锁的实现原理在一些场景中,我们希望一个方法同一时间只被一个线程执行,如果在单机环境下我们可以通过使用Java提供的并发API来限制访问,同一个JVM的线程可以通过共享堆内存中的变量来标记,这个标记其实就是锁,synchronized是通过对象头来标记;Lock接口的实现类是通过一个volatile的int型变量state来实现多线程的可见性和有序性(防止指令被重排序);linux 内核中也...原创 2019-07-20 16:19:59 · 925 阅读 · 0 评论 -
java实现发布订阅
1.发布者接口package com.yy.subpub;/** * @Description: 发布者接口 * @author: leijing * @date: 2016年9月29日 下午5:07:20 */public interface IPublisher<M> { /** * @Description: 向订阅器发布消息 ...原创 2016-09-29 17:49:39 · 9193 阅读 · 17 评论 -
[LeetCode788] Rotated Digits 旋转数字
一、题目我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字,则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数N,...原创 2019-05-12 18:01:14 · 276 阅读 · 0 评论 -
[LeetCode19] Remove Nth Node From End of List 删除链表的倒数第N个节点
一、题目给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?二、思路使用快慢指针实现,一个快指针fast先走...原创 2019-05-12 01:43:15 · 204 阅读 · 0 评论 -
[LeetCode7] Reverse Integer 整数反转
一、题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返...原创 2019-05-12 00:00:18 · 233 阅读 · 0 评论 -
[LeetCode14] Longest Common Prefix 最长公共前缀
一、题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。二、思路题目还算简单,...原创 2019-04-20 16:38:00 · 199 阅读 · 0 评论 -
[LeetCode02] Add Two Numbers 两数相加
一、题目给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&g...原创 2019-04-20 15:40:51 · 212 阅读 · 0 评论 -
redis一致性hash实践
之前在网上看过一致性hash原理,但是看过就忘记了,根本原因是没有理解透彻也没有实践,最近我负责了公司的会员业务,redis是开发自己搭建的,没有被DBA管理,最近要求迁移,这个工作就落在了我头上,为了确保迁移后缓存的key还能路由到原来的数据上,我把架构和源码研究了一番,发现竟然用了一致性hash,顿时眼前一亮,毕竟之前的系统没有这么用过,简单的就是主从+Sentinel,稍微复杂点用集群将数据...原创 2019-04-24 04:08:00 · 1511 阅读 · 2 评论 -
[LeetCode01] Two Sum 两数之和
一、题目给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2019-04-14 18:53:51 · 209 阅读 · 0 评论 -
中缀表达式计算器
一、实现思路1.双栈,一个操作符栈,一个操作数栈,从左到右扫描所有的字符2.如果是操作数,直接入操作数栈;如果是操作符,比较栈顶操作符和新操作符优先级 如果新的操作符是左括号或优先级高于栈顶元素时新的操作符入栈; 如果新的操作符优先级不高于栈顶元素的 ,就先出栈一个操作符(如果新操作符是右括号要循环弹出操符直到碰到左括号结 束和两个操...原创 2019-04-14 17:03:33 · 921 阅读 · 0 评论 -
org.apache.commons.httpclient.util.DateUtil.formatDate时间少一天
一、一个奇葩Bug前几天测试测出来一个Bug,设置生日然后保存成功,会自动往前一天,比如设置为1990-01-01,再回去看,会变成1989-12-31,因为优先级较低,其他同事也没遇到过这种奇葩问题而且当时比较忙,然后Leader让我有时间查一下,然后我今天查了一下,写了一个测试用例测了一下,发现是因为使用org.apache.commons.httpclient.util.DateUtil...原创 2019-03-28 18:28:09 · 2354 阅读 · 0 评论 -
Netty介绍以及源码分析
一. Netty是什么Netty是一个能支持快速和容易开发网络应用程序的NIO客户端服务器框架,例如协议服务器客户端,它极大的简化了网络编程,例如TCP和UDP套接字编程。快速和容易并不意味着应用程序将面临维护和性能问题。Netty是在积累了大量协议(例如FTP、SMTP、HTTP、还有各种二进制和基于文本的遗留协议)的经验前提下被精心设计的。因此,Netty成功地找到了一种方式,在不...原创 2019-03-28 07:11:03 · 267 阅读 · 0 评论 -
浅析若干Java序列化工具
浅析若干Java序列化工具转载 2016-09-17 16:28:13 · 588 阅读 · 0 评论 -
Java并发编程:Callable、Future和FutureTask
Java并发编程:Callable、Future和FutureTask转载 2016-09-14 19:28:57 · 360 阅读 · 0 评论 -
[Java]读取文件方法大全
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileNam转载 2014-12-06 17:10:53 · 385 阅读 · 0 评论 -
java导出excel2007
java导出excel2007原创 2016-07-13 17:27:32 · 706 阅读 · 0 评论 -
Content-disposition中Attachment和inline的区别
http://www.tuicool.com/articles/FJZvuy转载 2016-07-14 10:10:23 · 845 阅读 · 0 评论 -
文件上传和下载
package com.huikao.dao.imp;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Outpu原创 2016-07-14 10:19:22 · 484 阅读 · 1 评论 -
利用structs2和jquery.form.js文件上传
引入jquery.form.js$("#importPointsForm").ajaxSubmit({ success: function(json, status, $form){ if (json.result == 0) {alert("上传成功"); }else{alert("上传失败");}原创 2016-07-25 10:10:29 · 601 阅读 · 0 评论 -
Java并发编程
Java并发编程(1):可重入内置锁Java并发编程(2):线程中断(含代码)Java并发编程(3):线程挂起、恢复与终止的正确方法(含代码)Java并发编程(4):守护线程与线程阻塞的四种情况Java并发编程(5):volatile变量修饰符—意料之外的问题(含代码)Java并发编程(6):Runnable和Thread实现多线程的区别(含代码)Java并发编程(7):使用synchronize转载 2016-07-26 15:30:09 · 479 阅读 · 0 评论 -
Java并发编程(1):可重入内置锁
Java并发编程(1):可重入内置锁2016/07/04 | 分类: 基础技术 | 0 条评论 | 标签: 锁分享到:21原文出处: 兰亭风雨每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法转载 2016-07-26 15:19:52 · 383 阅读 · 0 评论 -
导出excel文件
f前端代码unction exportAllRecords(){$('#exportBtn').val('导出ing...');$('#exportBtn').attr("disabled", true);var url = 'exportAllRecords.action';var ifr; if (document.getElementById('downLo原创 2016-07-26 18:27:17 · 954 阅读 · 0 评论 -
Spring @Qualifier 注释
Spring @Qualifier 注释可能会有这样一种情况,当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean 将会被装配来消除混乱。下面显示的是使用 @Qualifier 注释的一个示例。示例让我们使 Eclipse转载 2016-07-27 10:29:59 · 320 阅读 · 0 评论 -
JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法
JAVA/SERVLET 以UTF-8导出CSV文件时产生乱码的解决方法博客分类: JSP & Servletjavaservletcsvexcel乱码 Java代码 OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8"); //转载 2016-07-28 12:05:31 · 1312 阅读 · 0 评论 -
org.apache.catalina.connector.RequestFacade cannot be cast to org.springframewor
org.apache.catalina.connector.RequestFacade cannot be cast to org.springframewor博客分类: springSpringMVC文件上传 spring mvc 上传时 org.apache.catalina.connector.RequestFacade cannot be转载 2016-07-28 15:44:44 · 2338 阅读 · 0 评论