
java
ZG_24
这个作者很懒,什么都没留下…
展开
-
equals和==的区别
对于基本类型变量来说,“==”和“equals”是相同的。对于引用型变量来说,“==”表示的是两个变量在内存中存储的地址是否相同。举个例子:String s1 = new String("str"); String s2 = new String("str");如果用==号比较,会返回false,因为创建了两个对象,他们在内存中地址的位置是不一样的。equals原创 2017-07-06 11:16:56 · 253 阅读 · 0 评论 -
Top K问题系列之一 概念
在大规模数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最好的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为top K问题。例如,在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载最高的前10首歌等。 针对top K类问题,通常比较好的方案是分治+Trie树/hash+小顶堆(就是上面提到的最小堆),即先将数据集按照Hash方法分...原创 2018-03-16 14:14:04 · 227 阅读 · 0 评论 -
Top K系列问题之二 常见问题
1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最...原创 2018-03-16 14:31:17 · 200 阅读 · 0 评论 -
Top K问题系列之三 手写代码
Top K问题是面试时手写代码的常考题,某些场景下的解法与堆排和快排的关系紧密,所以把它放在堆排后面讲。关于Top K问题最全的分类总结是在这里(包括海量数据的处理),个人将这些题分成了两类:一类是容易写代码实现的;另一类侧重考察思路的。毫无疑问,后一种比较简单,你只要记住它的应用场景、解决思路,并能在面试的过程中将它顺利地表达出来,便能以不变应万变。前一种,需要手写代码,就必须要掌握一定的技巧,...原创 2018-03-16 15:50:41 · 619 阅读 · 0 评论 -
Java泛型
引言泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配符处理,以及让人苦恼的类型擦除。泛型基础泛型类我们首先定义一个简单的Box类:这是最常见的做法,这样做的一个坏处是Box里面现在只能装入String类型的元素,今后如果我们需要装入Integer等其他类型的元素,还必须要另外重写一个Box,代码得不到复用,使用...原创 2018-05-12 14:18:03 · 192 阅读 · 0 评论 -
项目管理工具 maven(1) ---- Maven的概念与安装、配置
1 Maven介绍1.1 maven是什么 maven翻译为“专家”,“内行”。Maven是Apache下的一个纯java开发的开源项目,它是一个项目管理工具,使用maven对java项目进行构建、依赖管理。当前使用Maven的项目在持续增长。1.2 什么是项目构建 项目构建是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程。1.2.1 传统项目构建...原创 2018-05-31 20:37:19 · 546 阅读 · 0 评论 -
项目管理工具 maven(2) ---- Maven入门、常用命令、生命周期与概念模型
1 Maven入门1.1 Maven工程运行示例1.1.1 运行Web工程 进入maven工程目录(当前目录有pom.xml文件),运行tomcat:run命令。 根据上边的提示信息,通过浏览器访问:http://localhost:8080/maven-helloworld/ 1.1.2 问题处理 ...原创 2018-06-02 13:41:34 · 440 阅读 · 0 评论 -
Java EE MVC思想
MVC(model - view - controller)是软件开发的一种设计模式,即把一个应用的输入、处理、输出流程哪找模型层(Model)、视图层(view)、控制层(controller)的方式进行划分。主要目的是将模型层和视图层的代码进行分离,从而使同一个应用可以使用不同的表现形式,只需通过控制层确保两者的更新同步即可。 1.模型层模型层是对业务流程/状态的处理以及业务规则的...原创 2018-08-05 12:59:08 · 391 阅读 · 0 评论 -
原子操作类AtomicInteger详解
为什么需要AtomicInteger原子操作类?对于Java中的运算操作,例如自增或自减,若没有进行额外的同步操作,在多线程环境下就是线程不安全的。num++解析为num=num+1,明显,这个操作不具备原子性,多线程并发共享这个变量时必然会出现问题。测试代码如下:public class AtomicIntegerTest { private static final int...原创 2019-03-05 19:58:35 · 353 阅读 · 0 评论