
Java
王彦清
清心攻读世间文,華年志为天下事。
展开
-
腾讯面试题:40亿个QQ号码如何去重?
今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下:文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制1G。这个题目的意思应该很清楚了,比较直白。为了便于大家理解,我来画个动图玩玩,希望大家喜欢。能否做对这道题目,很大程度上就决定了能否拿下腾讯的offer,有一定的技巧性,一起来看下吧。在原题中,实际有40亿个QQ号码,为了方便起见,在图解和叙述时,仅以4个QQ为例来说明。方法一:排序很自然地,最...转载 2021-12-20 07:46:32 · 1616 阅读 · 0 评论 -
中国居民18位身份证号验证方法
public static boolean validate18Idcard(String idcard){ if(idcard == null ) { return false; } if(idcard.length()!=18) { return false; } char [] id =idcard.toCharArray(); int i, sum...原创 2021-08-01 19:46:33 · 6657 阅读 · 0 评论 -
Lock和synchronized比较详解
今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章,注意红色字体。 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Ja转载 2017-11-28 20:17:55 · 139 阅读 · 0 评论 -
10G 个整数,乱序排列,要求找出中位数,内存限制为 2G
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。关于中位数:数据排序后,位置在最中间的数值。即将数据分 成两部分,一部分大于该数值,一部分小于该数值。中位数的位置:当样本数为奇数时,中位数=(N+1)/2 ; 当样本数为偶数时,中位数为N/2转载 2017-12-08 19:46:59 · 1708 阅读 · 1 评论 -
使用wget下载jdk1.8
For 64Bitwget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141...原创 2018-02-09 18:45:30 · 15406 阅读 · 2 评论 -
Error unmarshalling xml in java-8 secure-processing org.xml.sax.SAXNotRecognizedException
Error unmarshalling xml in java-8 “secure-processing org.xml.sax.SAXNotRecognizedException causing java.lang.IllegalStateException”We added this dependency to a couple of our pom.xml files<dependen...原创 2018-03-02 13:29:09 · 833 阅读 · 0 评论 -
[异常处理]java.lang.NoClassDefFoundError: org/jaxen/JaxenException
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230) at org.dom4j.tree.AbstractNode.createXPat...原创 2018-03-02 13:32:30 · 7954 阅读 · 0 评论 -
JDK 1.5 - 1.8 各版本的新特性总结
以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8主要部分特性。仅供参考。JDK1.5新特性1:自动装箱与拆箱:自动装箱:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自动拆箱:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。自动装箱,只需将该值赋给一个类型包装器引用,java会...转载 2018-04-18 22:15:47 · 403 阅读 · 0 评论 -
Java 进程占用 VIRT 虚拟内存超高的问题研究
1. 现象最近发现线上机器 java 8 进程的 VIRT 虚拟内存使用达到了 50G+,如下图所示:2. 不管用的 -Xmx首先第一想到的当然使用 java 的 -Xmx 去限制堆的使用。但是无论怎样设置,都没有什么效果。没办法,只好开始苦逼的研究。3. 什么是 VIRT现代操作系统里面分配虚拟地址空间操作不同于分配物理内存。在64位操作系统上,可用的最大虚拟地址空间有16EB,即大概180亿G...转载 2018-04-26 16:03:28 · 2839 阅读 · 0 评论 -
Centos 7部署汉化版gitlab
===============================================2017/11/12_第6次修改 ccb_warlock 更新说明:2017/11/12:五中增加管理员账号的内容2017/11/8:修复3.6中命令错误的问题;2017/10/20:3.4中增加“途径2:从官方获取RPM包后上传到/root目录下”的内容;4....转载 2018-04-27 15:00:48 · 176 阅读 · 0 评论 -
如何使用maven打成一个可直接运行的jar包
<build><plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version&a转载 2018-06-19 16:20:37 · 2117 阅读 · 0 评论 -
Java多线程
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些转载 2017-11-28 20:30:35 · 152 阅读 · 0 评论 -
ConcurrentHashMap总结
并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩_∩)O)。ConcurrentHashMap的设计与实现非常精巧,大量的利用了volatile,f转载 2017-11-28 19:59:23 · 205 阅读 · 0 评论 -
pom.xml build src文件夹设置
pom.xml build文件夹设置如下:${basedir}/src/main/java ${basedir}/target/classes ${basedir}/src/main/java **/*.java ${basedir}/src/main/resources原创 2017-10-11 15:06:03 · 1344 阅读 · 0 评论 -
Java和PHP在Web开发方面的比较
比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发。以下是我就几个主要方面进行的比较:一、 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不转载 2017-09-29 23:01:08 · 383 阅读 · 0 评论 -
Java调用R语言
1、安装R语言版本:R-3.1.3, 只有此版本CRAN同时包含RMySQL、rmongodb设置环境变量$R_HOME为D:\lang\R\R-3.1.32、安装RStudio,可以通过它安装需要的包3、配置Rserve进入$R_HOME/library/Rserve/libs/i386或$R_HOME\library\Rserve\libs\x64原创 2017-09-29 15:51:55 · 1143 阅读 · 0 评论 -
pom.xml build中Java和资源文件源的配置
${basedir}/src/main/java ${basedir}/target/classes ${basedir}/src/main/java **/*.java ${basedir}/src/main/resources原创 2017-09-29 16:48:25 · 1164 阅读 · 0 评论 -
Java 8 默认方法和多继承
以前经常谈论的Java对比c++的一个优势是Java中没有多继承的问题。 因为Java中子类只能继承(extends)单个父类, 尽管可以实现(implements)多个接口,但是接口中只有抽象方法,方法体是空的,没有具体的方法实现,不会有方法冲突的问题。这些都是久远的说法了,自从今年Java 8发布后, 接口中也可以定义方法了(default method)。 之所以转载 2017-09-29 17:56:54 · 320 阅读 · 0 评论 -
我是一个线程
第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。”我一脸懵懂,“包裹,什么包裹?”“不要着急,马上你就会明白了,我们这里是不养闲转载 2017-09-29 18:04:52 · 158 阅读 · 0 评论 -
40个Java多线程问题总结
安全 36、Semaphore有什么作用Semaphore就是一个信号量,它的作用是限制某段代码块的并发数。Semaphore有一个构造函数,可以传入一个int型整数n,表示某段代码最多只有n个线程可以访问,如果超出了n,那么请等待,等到某个线程执行完毕这段代码块,下一个线程再进入。由此可以看出如果Semaphore构造函数中传入的int型整数n=1,相当于变成了一个syn转载 2017-09-29 18:08:21 · 167 阅读 · 0 评论 -
Java 程序员的互联网转型之路
作者/分享人:李艳鹏,支付平台架构师,专注线上和线下支付平台的应用架构和技术架构的规划与落地,负责交易、支付、渠道、账务、计费、风控、对账等系统的设计与实现,在移动支付、聚合支付、合规账户、扫码支付、标记化支付等业务场景上有产品应用架构规划的经验。 我为什么要写这篇文章武林中,"天下武功出少林"指各门各派的武功都与少林武学有一定的渊源,技术也是相同的道理,对于 Java 领域的转载 2017-09-29 18:11:37 · 629 阅读 · 0 评论 -
Java并发总结
1多线程的优点1、资源利用率更好;2、程序在某些情况下更简单;3、程序响应更快。2创建线程 实现Runnable接口new Thread(Runnable).start()1、可以避免由于java单继承带来的局限;2、增强程序的健壮转载 2017-09-29 18:13:40 · 240 阅读 · 0 评论 -
JAVA面试题集
基础知识: 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程转载 2017-09-29 22:55:20 · 311 阅读 · 0 评论 -
国外java、IT技术网站汇总
以下是国外JAVA与IT技术网站地址,每个都可以打开的,特此共享,希望对大家有帮助! 1、http://www.onjava.com - O'Reilly的Java网站. 每周都有新文章. 2、http://java.sun.com- 官方的Java开发者网站 - 每周都有新文章发表. 3、http://www.developer.com/java - 由Gam转载 2017-09-30 14:09:21 · 1451 阅读 · 0 评论 -
阿里云Maven仓库
可以有两种用法1、配置settings.xml<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.原创 2017-09-29 15:38:08 · 418 阅读 · 0 评论 -
关于java.lang.IncompatibleClassChangeError: Implementing class错误解决
pom.xml文件如下: opensymphony quartz-all quartz quartz 1.6.0 org.quartz-scheduler quartz 2.3.0 quartz jar冲突,解决的办法删除版本为1.6.0的jar原创 2017-09-30 09:52:41 · 2210 阅读 · 0 评论