Java
文章平均质量分 57
yi_afly
这个作者很懒,什么都没留下…
展开
-
Java Console乱码
问题源于某公司的一道机试题,要求是写一个网络聊天室,客户端用telnet连接到服务器。 实现接近尾声的时候,突然发现从控制台输入的中文是乱码。我的代码如下:InputStreamReader is = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(is);while(true) { tr原创 2015-07-13 12:59:50 · 1593 阅读 · 1 评论 -
Integer.valueOf转换负数时抛出NumberFormatException
Integer.valueOf转换负数时抛出NumberFormatException1. 问题描述今天在牛客上,有牛友抛出了这样一个问题: Integer m =Integer.valueOf("11111111111111111111111100000000",2); 上面这段代码,二进制数的长度是32位,没超出Integer的范围,为什么会抛出NumberFormatException的原创 2016-09-09 10:14:35 · 8093 阅读 · 0 评论 -
几个常见的DP问题及解法
前言记录一些最近遇到的DP问题,并给出解法。只会记录我知道的最优解法(一般是时间最优),并贴出源码。有OJ的还会贴上地址。1. 求字符串的最长不重复子串的长度举例:abcabcbb,返回abc;bbbbb,返回b;pwwkew,返回wke。注意pwke是子序列,不是子串。问题分析: 记字符串存放在字符数组cs中,遍历cs的下标为i。分析可知,想求截止到i的最长不重复子串的长度,只要从i向左原创 2016-08-01 00:12:08 · 12067 阅读 · 0 评论 -
协变、逆变与不变:数组、泛型、与返回类型
1. 前言之前几篇博文,有些地方涉及到了协变性、逆变性与不变性在Java中的表现,所以这篇博文将重点记录这方面的内容,并辅以JDK源码中的一些实例,加以说明。2. 定义这里讨论的协变、逆变与不变都是编程语言中的概念。下面介绍定义: 若类A是类B的子类,则记作A ≦ B。设有变换f(),若:当A ≦ B时,有f(A)≦ f(B),则称变换f()具有协变性。当A ≦ B时,有f(B)≦ f(A),原创 2016-07-30 17:38:11 · 2429 阅读 · 1 评论 -
static实现单例的隐患
1. 前言Java的单例有多种实现方式:单线程下的简单版本、无法在指令重排序下正常工作的Double-Check、static、内部类+static、枚举……。这篇文章要讨论的,是在使用static实现饿汉模式的单例时,会有隐患存在。2. Static单例的隐患2.1 传统写法static实现单例的代码如下:public class Singleton { private static Si原创 2016-07-29 13:10:31 · 1972 阅读 · 0 评论 -
关于Comparable的compareTo的正确写法
先描述一下我的element,看源码:private static class Solution implements Comparable<Solution>{ final int width; final int height; double lwr; //长宽比(length-width ratio)原创 2015-07-23 19:16:16 · 1612 阅读 · 0 评论 -
Java泛型的实现:“禁止”泛型数组
1. 问题来源今天在刷题时,遇到了需要使用泛型数组的场景。题目是按之字形打印二叉树。这道题目需要交替使用两个栈来解决,我的初始代码为:ArrayDeque<TreeNode>[] stacks = new ArrayDeque<TreeNode>[2]; //1stacks[0] = new ArrayDeque<TreeNode>();stacks[1] = new ArrayDequ原创 2016-07-28 20:24:44 · 6328 阅读 · 2 评论 -
从1到n整数中1出现的次数:O(logn)算法
1. 题目描述输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。2. 题目来源第一次看到是在《剑指Offer》第2版上,leetcode和牛客网上都有这道题。3. 本片博客的目的看了《剑指Offer》上的解法,我觉得不能算好:这段解释描述有些不清晰,而且没有图,难以理解。从书中给出的实现上来看,原创 2016-07-26 13:13:54 · 27638 阅读 · 37 评论 -
Java泛型的实现:原理与问题
很久没写博客了,因为项目和一些个人原因。最近复习找工作,看书+回想项目后有一些心得,加上博客停更这么长时间以来的积累,很是有些东西可写。从今儿开始,慢慢把之前积累的东西补上来,方便以后查漏补缺。 先从最近的开始。昨天看到Java泛型相关的内容,有些疑惑,查资料之后发现这部分很有些有意思的东西,比如类型擦除带来的重写问题等等,一并记录在这篇文章里。1. 泛型定义看了很多泛型的解释百度百科,解释1,解原创 2016-07-23 12:36:55 · 11166 阅读 · 4 评论 -
Set的add方法返回false
遇到这个问题的时候,第一反应是SQL写错了,因为我是遍历ResultSet调用的Set.add。 后来发现不是SQL的问题,再仔细想了一下,发现了问题所在。 我的Bean实现了Comparable接口,compareTo是这么写的public int compareTo(GirlInfo o) { if(girlSupportNumber > o.getGirlSupportNumber原创 2015-04-19 23:18:32 · 1942 阅读 · 0 评论 -
Java多线程中同步Boolean问题
最近在使用netty写个小玩意儿,其中在通信时,Server给Client的响应中,要包含一组信息,直到Client成功收到并解析。 这需要有一个Flag,一开始我使用Boolean, 变量名receivedPeerList,以构造函数参数的形式传递进channelHandler中,然后在主线程和netty的channelRead事件中同步它。 用法如下: channelRead中修改它:原创 2015-12-27 15:06:01 · 5158 阅读 · 0 评论 -
使用Maven实现一键部署war到Tomcat
使用Maven实现一键部署war到Tomcat使用Maven实现一键部署war到Tomcat环境Tomcat设置Maven配置POM配置执行Errors1. 环境maven:3.2.3tomcat:7.0.53tomcat-maven-plugins:2.22. Tomcat设置实现这个功能需要在maven中增加tomcat的访问权限,所以我们要先在中tomcat增加一个管理权原创 2015-07-04 15:23:02 · 775 阅读 · 0 评论 -
使用Archiva搭建Maven私有仓库
工具安装tomcatWeb Application方式安装Archiva1 部署到tomcat2 图形界面配置Archiva配置本地Maven1 配置私有仓库信息2 配置私有仓库的认证信息在Maven项目中配置上传artifact1.工具apache-archivaapache-tomcatapache-maven 我所使用的版本是:archiva-2.2.0,war包版本原创 2015-08-15 23:18:35 · 4411 阅读 · 4 评论 -
IE下载文件时,中文文件名乱码问题
经排查,Content-Disposition中的filename进行了两次URL转码。以汉字漫为例:第一次转码,漫变为%E6%BC%AB。第二次转码,%E6%BC%AB变为%25E6%25BC%25AB(第二次转码时,因为%是特殊字符,所以会转为%25)。前端下载时:Chrome浏览器可以自动执行两次URL解码,所以下载的文件名是正常的。IE浏览器只执行一次URL解码,所以下载的文件名是原创 2016-11-18 20:10:47 · 5787 阅读 · 1 评论