![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
smile_milk1992
欢迎与大家探讨软件编程的奥秘
展开
-
【深度好文】simhash文本去重流程
对于类似于头条客户端而言,推荐的每一刷的新闻都必须是不同的新闻,这就需要对新闻文本进行排重。传统的去重一般是对文章的url链接进行排重,但是对于抓取的网页来说,各大平台的新闻可能存在重复,对于只通过文章url进行排重是不靠谱的,为了解决这个痛点于是就提出了用simhash来解决这个难题。1.简介 传统的Hash算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上仅相当于伪随机数产生算法。即便是两个原始内容只相差一个字节,所产生的签名也很可能差别很大,所以传统的Hash是无法在签名的维度上原创 2020-11-25 17:22:00 · 348 阅读 · 0 评论 -
String与new String的区别
// ==与equals的区别:// ==:// 1、比较的是操作符两端的操作数是否是同一个对象// 2、两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。// 3、比较的是地址,如果是具体的阿拉伯数字的比较,值相等则为TRUE,如:// int a=10 与 long b=10L 与 double c=10.0都是相同的(为true),因为他们都指向地址为10的堆原创 2015-10-24 09:19:59 · 450 阅读 · 0 评论 -
java里面的枚举
枚举是限定有限可能值的一种手段,使用枚举可以降低程序出错的几率,并可以提高代码的可读性与可维护性。Java中的枚举并不是简单常量的集合,而是一个对象,其本质依然是类,所以Java中的枚举除了提供一系列相关值以外,还提供了一些额外功能,甚至还可以根据需要自行添加一些功能。本文拟就Java枚举的用法做一相对全面的介绍。一、 常规用法尽管Java中的枚举是对原创 2015-11-09 20:31:54 · 528 阅读 · 0 评论 -
关于“短路逻辑”问题
Java逻辑运算遵循“短路逻辑”的原则对于“&&”,当第一个操作数为false时,将不会判断第二个操作数,因此第二个抄作数原创 2015-09-23 11:20:37 · 1027 阅读 · 0 评论 -
System.currentTimeMillis()获得当前时间
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。currentTimeMillis方法public static long currentTimeMillis()该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。代码如下:long ti原创 2015-09-23 10:20:47 · 950 阅读 · 0 评论 -
集合类说明
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素原创 2015-10-12 22:11:02 · 327 阅读 · 0 评论 -
java里面的treemap与HashMap
首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对。 HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不原创 2015-10-13 10:39:20 · 531 阅读 · 0 评论 -
Set,List,Map的区别
java集合的主要分为三种类型:Set(集)List(列表)Map(映射)要深入理解集合首先要了解下我们熟悉的数组:数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),而JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中! JAVA集合只能存放引用类型的的数据,不能存放基本数据类型。简单说下集合和数组转载 2015-10-13 14:52:31 · 462 阅读 · 0 评论 -
Java中产生随机数的方法
在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。下面是两种方法的使用过程:一.java.lang.Math.random() 在使用这一静态方法的时候,我们不需要import任何包,因为java.lan原创 2015-09-24 10:47:21 · 649 阅读 · 0 评论 -
java synchronized详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个原创 2015-11-20 15:23:07 · 393 阅读 · 0 评论 -
JAVA中三种URL连接方法
JAVA中三种URL连接方法 Java的网络类可以让你通过网络或者远程连接来实现应用。而且,这个平台现在已经可以对国际互联网以及URL资源进行访问了。Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷。我们通过使用Java的URL类就可以经由URL完成读取和修改数据的操作。现在,我们来看一看,如何才能发挥出URL类的效力。 通过URL进行工作翻译 2015-11-23 09:38:06 · 392 阅读 · 0 评论 -
网络编程
网络编程步骤 按照前面的基础知识介绍,无论使用TCP方式还是UDP方式进行网络通讯,网络编程都是由客户端和服务器端组成。当然,B/S结构的编程中只需要实现服务器端即可。所以,下面介绍网络编程的步骤时,均以C/S结构为基础进行介绍。 说明:这里的步骤实现和语言无关,也就是说,这个步骤适用于各种语言实现,不局限于Java语言。1.1原创 2015-11-20 16:56:29 · 1330 阅读 · 4 评论 -
Eclipse快捷键
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对原创 2015-12-14 09:17:21 · 329 阅读 · 0 评论 -
JAVA组件大全复选框,选项按钮,复选方框,下拉式列表的使用介绍
7-1:使用JCheckBox组件:类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JComponent --javax.swing.AbstractButton --javax转载 2015-10-08 21:03:36 · 4544 阅读 · 0 评论 -
java中的内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类如同一个人是由大脑、肢体、器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液、跳动)显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类而心脏又在人体当中,正如同是内部类在外部内当中 实例1:内部类的基本结构//外部类原创 2015-10-06 10:26:11 · 390 阅读 · 0 评论 -
关于System.arraycopy数组复制的一个问题
本小节主要讲的是数组复制的一个问题在EClipse里面输入System.arraycopy会自动显示:System.arraycopy(src, srcPos, dest, destPos, length);src-------源数组scrPos--------源数组起始位置dest----------目标数组destPos-----------目标数组的起始位置原创 2015-09-24 17:11:38 · 2401 阅读 · 0 评论 -
选择排序法的实例分析
由小到大排序int a[]={63,4,24,1,3,15};int i,j,k,t;//由小到大选择排序法for(i=0;i{k=0;for(j=1;j{if(a[k]if(k!=a.length-i-1){t=a[k];a[k]=a[a.length-i-1];a[a.length-1-i]=t;}}}System.out.println(Arr原创 2015-09-28 16:18:34 · 1291 阅读 · 0 评论 -
java中堆和栈的区别
堆和栈是信息学数据结构通用名词,不仅在Java中,C++里也有调用模板。堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。堆的定转载 2015-09-29 16:11:21 · 610 阅读 · 0 评论 -
super与this用法
通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量。但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的。好了,现在开始讨论this&super这两个关键字的意义和用法。 在Java中,this通常指当前对象,super则指父类的。当你想要引原创 2015-09-30 09:12:12 · 500 阅读 · 0 评论 -
java类和对象实例分析
1,类和对象 在面向对象的概念当中,类(class)是既包括数据又包括作用于数据的一组操作的封装体。类的数据称为成员变量,类对数据的操作称为成员方法。成员变量反映类的状态和特征,成员方法反映类的行为和能力。类的成员变量和方法统称为类的成员。 对象(Object)是类的实例(instance)。对象是动态的,拥有生命周期,都会经历一个从创建、运行到消亡转载 2015-09-30 09:52:09 · 582 阅读 · 0 评论 -
java中Class.forName的作用浅谈
这篇文章介绍了java中Class.forName的作用,有需要的朋友可以参考一下Class.forName(xxx.xx.xx) 返回的是一个类一.首先你要明白在java里面任何class都要装载在虚拟机上才能运行。1. forName这句话就是装载类用的(new是根据加载到内存中的类创建一个实例,要分清楚)。 至于什么时候用,可以考虑一下这个问题,给你一个字符串原创 2015-11-03 18:41:14 · 392 阅读 · 0 评论 -
关于进制转换(java)
十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer.toOctalString(int i) 十进制转成二进制 Integer.toBinaryString(int i) 十六进制转成十进制 Integer.valueOf("FFFF",16).toString() 八进制转成十进制 Integer.va原创 2015-11-03 19:53:35 · 352 阅读 · 0 评论 -
java中方法重载和重写的区别和定义
重载:一个类中有一个方法A,你又在这个类中创建了一个方法B,方法B的名字和A一样,返回值类型也一样,但是参数的类型或个数不同,此时B重载了A。例如:public class TestClass{public int test(int i){return 1;}public int test(float f){return 1;}}重写:一个类M继承另一个类N,N中有原创 2015-10-03 08:47:56 · 4835 阅读 · 0 评论 -
newInstance参数详解
通过反射创建新的类示例,有两种方式: Class.newInstance() Constructor.newInstance() 以下对两种调用方式给以比较说明: Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数; Constructor.newInstance() 可以根据传入的参数,调用任意构造构造函数。 Class.n原创 2015-11-05 19:12:17 · 16695 阅读 · 0 评论 -
Java中的finalize()方法详解
程序员都了解初始化的重要性,但常常会忘记同样重要的清除工作。毕竟,谁需要清除一个int 呢?但在使用程序库时,把一个对象用完后就“弃之不顾”的做法并非总是安全的。当然,Java有垃圾回收器来回收无用对象占据的内存资源。但也有特殊情况:假定你的对象(并非使用 new)获得了一块“特殊”的内存区域,由于垃圾回收器只知道释放那些经由 new分配的内存,所以它不知道该如何释放该对象的这块 “特殊”内存。原创 2015-10-03 10:14:41 · 558 阅读 · 0 评论 -
java多态的理解
Java中多态性的实现什么是多态面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamic binding),是指在执行原创 2015-10-04 08:54:06 · 381 阅读 · 0 评论 -
匿名内部类的总结
匿名内部类也就是没有名字的内部类正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口 实例1:不使用匿名内部类来实现抽象方法abstract class Person { public abstract void eat();} class Ch转载 2015-10-06 10:21:30 · 381 阅读 · 0 评论 -
Java产生随机数和随机字母的方法
一,定义随机数之前要调用:import java.util.Random;产生随机数的代码为:int []arr=new int[n];int max=10000;int min=100;Random ran=new Random();arr[i]=ran.nextInt(100)产生0-99的随机数arr[i]=ran.nextInt(max)%(max-原创 2015-09-25 14:35:16 · 9614 阅读 · 0 评论