Set<String> names = new HashSet<>(); names.add("张三"); names.add(new String("张三")); Iterator<String> iterator = names.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); } 以上代码输出只有一个:张三 惊不惊喜,意不…
转自https://blog.csdn.net/u012050154/article/details/60572567 java Queue中 add/offer,element/peek,remove/poll中的三个方法均为重复的方法,在选择使用时不免有所疑惑,这里简单区别一下: 1.add()和offer()区别: add()和offer()都是向队列中添加一个元素.一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,调用 add() 方法就会抛出一个 unchecked 异常,而…
本文主要通过用HashSet的add方法讲一下hashCode和equals方法重写.错误的地方望指正. 1.了解HashSet的add方法 了解一个方法的好办法是看源码,所以先看源码 private transient HashMap<E,Object> map; // Dummy value to associate with an Object in the backing Map private static final Object PRESENT = new Object(); p…
前言 <Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦> 由于开源了项目的缘故,很多使用了My Blog项目的朋友遇到问题也都会联系我去解决,有的是把问题留在项目的issue里提出,有的是在我的私人博客里留言,还有的则是直接添加我的qq来找我讲自己遇到的问题,有些问题比较简单直接就解决了,有些问题的解决记录也留在issue记录里,有些则是网上有相关教程,至于问题的解决方案,如果时间允许我也会单独的做一篇博客来介绍和解答. 本文中的示例代码地址在:…
Jsp中如何通过Jsp调用Java类中的方法 1.新建一个项目,在src文件夹下添加一个包:如:cn.tianaoweb.com; 2.再在包中添加一个类:如 package com; public class test { public String sd(){ return "sd"; } } 3.在默认的首页index.jsp(当然也可以自己新建一个jsp文件)的开头引入 <%@ page import="cn.tianaoweb.com.*"%>…
在C#的List集合操作中,有时候需要将符合条件的对象添加到已有List集合中的末尾,此时就需要使用到List集合的Add方法,Add方法的作用为将对应的元素添加到List集合末尾,Add方法签名为void Add(T item),T代表List集合中的具体元素的类型,是C#中的泛型语法,item代表具体需要添加的元素对象. 例如有个List集合list1中含有元素1至10,此时需要往list1集合中添加元素11可使用下列语句: List<, , , , , , , , , }; list1.A…
HashSet 实现了Set接口 实际上是HashMap 可以存null,但只能有一个 不保证元素是有序的,取决于hash后,在确定索引结果 add源码 //核心操作putVal final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; // 步骤①:tab为空则创建 // table未初始化或者长度为…
1.如何定义java的方法 什么是方法:方法使用来解决一类问题的代码集合,是一个功能模块在类中定义个方法的方法是: 访问修饰符 返回值类型 方法名(参数列表){ 方法体 } 1.访问修饰符,是限制该方法允许被访问的权限范围,可以是:public,protected,private还可以省略2.返回值,如果有返回值需要在这里说明类型,并用return返回,如果没有返回值,使用void3.方法名,使用标识符命名4.参数列表,传递给方法的参数列表 根据返回值和参数的不同,方法大致上分为一下四类:Ø 无…
接口中可以含有变量和方法.但是,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private.protected.static. final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法. 这些都是大家熟知的,但是…
在jsp页面中先要,引入java类 例如: <%@page import="javabean.DbConn"%><!-- 引入包中的"类" --> <!--在用到的地方,直接对类实例化--> <% DbConn  DB=new  DbConn(); %> <!--然后就可以直接调用类中的方法--> <% Connection con=DB.conn(); %>…
一.原理概要 lambda 表示式,可以作为某些匿名内部类的替代.主要目的是调用该内部类中的方法,而该方法的实现(重写)由 lambda表示式决定. 通常,我们可能不关心匿名内部类中的具体方法(被重写的方法),而只关心该方法是怎么被重写的(方法的实现).因此,我们可以构造一个中间对象(通常是接口,比如 Funtion),该接口拥有一个需要该重写的方法(比如 Function 对应的方法是 apply). 二.如何使用 在实际书写时,可以只写出(传递的参数)与{方法的实现},或者只标出实现过程的…
Eclipse新建Java工程,工程目录如下 1.下载log4j的Jar包,在Java工程下新建lib文件夹,将jar包拷贝到此文件夹,并将其加入到路径中,即:Jar包上右键——Build Path——Add to Build Path 2.src文件夹下新建log4j.properties文档,内容如下: log4j.rootLogger=info, stdout, log, errorlog log4j.Logger=search,Test ###Console ### log4j.appe…
js中的方法什么时候加括号什么时候不加括号呢,我们有时候经常就搞不清楚,记住下面这几点就好理解了. 1.函数做参数时都不要加括号. function fun(a){ alert(a); } function getE(fun,e){ fun(e); } getE(fun,3);//弹出3,这里把函数fun当成实参传入,所以就不用加括号了. 2.函数调用的时候是要加括号的,上面这个例子中getE这个函数调用的时候,不管有没有参数,都是要加括号的. 3.函数作为赋值符号右边的时候,无括号表示的是传递…
1. 引言 Java8中最受广大开发中喜欢的变化之一是因为引入了 lambda 表达式,因为这些表达式允许我们放弃匿名类,从而大大减少了样板代码,并提高了可读性. 方法引用是lambda表达式的一种特殊类型.它们通常通过引用现有方法来创建简单的lambda表达式. 方法引用包括以下四种类型: 静态方法 特定对象的实例方法 特定类型的任意对象的实例方法 构造方法 在本篇文章中,我们将探讨Java中的方法引用. 2. 引用静态方法 We'll begin with a very simple exa…
package com.xt.list; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ListTest { public static void main(String[] args) { /** * List 是一个接口 * ArrayList是实现List接口的实现类,内部是一个大小可变的数组 * <String>代表泛型 ,泛型的意思是ArrayLis…
1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null: 3. String str=”kvill”:String str=new String (“kvill”);的区别: 在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念. 常量池(const…
转载自:http://uule.iteye.com/blog/1101994 thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B. t.join();      //使调用线程 t 在此之前执行完毕. t.join(1000);  //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码: /** *  Waits at most <code>millis…
基本上所有的Java教程都会告诉我们Java接口的方法都是public.abstract类型的,没有方法体的. 但是在JDK8里面,你是可以突破这个界限的哦. 假设我们现在有一个接口:TimeClient,其代码结构如下: import java.time.*; public interface TimeClient { void setTime(int hour, int minute, int second); void setDate(int day, int month, int yea…
start()方法告诉jvm该线程准备运行,jvm通过调用任务的run()方法执行任务. 一个任务类必须实现Runnable接口,而任务必须从线程运行. 实现Runnable接口后必须重写run()方法,而不是重写start()方法,也不能重写start()方法. 直接调用run()方法只是在同一个线程中执行了该方法,与一般的方法没有区别,没有新的线程被启动,也就没有多线程的概念. 例如:一个PrintChar,重复打印字符的方法,charToPrint为要打印的字符,times为要打印的次数,…
在 JavaEE 配置文件中,例如 XML 或者 properties 文件,由于某些敏感信息不希望普通人员看见,则可以采用加密的方式存储,程序读取后进行解密. 常见的如: 数据库用户密码,短信平台用户密码,系统间校验的固定密码等. 本工具类参考了 <Spring.3.x企业应用开发实战>一书 5.3节的实现. 完整代码与注释信息如下: package com.cncounter.util.comm; import java.security.Key; import java.security…
Sun/Oracle JDK的HotSpot VM中,直到JDK7都有“持久代”(Permanent Generation,简称PermGen).也称为方法区.Oracle JDK8的HotSpot VM去掉“持久代”,以“元数据区”(Metaspace)替代之. Oracle是在JDK7的时候宣布移除PermGen内存区域,但是知道JDK8才最终移除. 在JDK7之前,所谓的Permanet Generation内存区域其实包含了两个部分: 方法区 Internded String 方法区主要…
read()方法的作用是从输入流读取数据的下一个字节,返回的字节的值是一个0~255之间的整数.到达流的末尾返回-1. 刚开始我以为这个返回值表示的是所读取的数据的长度,可是之后在一个示例程序中发现这种说法解释不通.我就好奇研究了一下这个返回值到底表示什么. 首先要知道什么是字节(Byte)和比特(bit),它们都是计算机信息量的度量单位. 每一个二进制位(bit)有0和1两种状态,八个二进制位(bit)被称为一个字节(Byte),一个字节可以表示出2^8=256种状态,从0000 0000到1…
正文 bug描述 当查找已修改的与未修改的做比较的时候,之前为null的值调用equals方法与其他值做比较的时候,会导致抛出空指针异常 知识补充 关于null,你不得不知道的几件事: 1.null是Java中的关键字,像public.static.final.它是大小写敏感的,你不能将null写成Null或NULL,编译器将不能识别它们然后报错. 2.就像每种原始类型都有默认值一样,如int默认值为0,boolean的默认值为false,null是任何引用类型的默认值,不严格的说是所有obje…
require参数类型 http.fs.path等,原生模块 ./mod或../mod,相对路径的文件模块 /pathtomodule/mod,绝对路径的文件模块 mod,非原生模块的文件模块 在进入路径查找之前有必要描述一下module path这个Node.js中的概念.对于每一个被加载的文件模块,创建这个模块对象的时候,这个模块便会有一个paths属性,其值根据当前文件的路径计算得到.Node.js在编译js文件的过程中实际完成的步骤有对js文件内容进行头尾包装.以app.js为例,我们…
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B. t.join();      //使调用线程 t 在此之前执行完毕. t.join(1000);  //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码: /** *  Waits at most <code>millis</code> milliseconds for this thr…
不给子类复写这个方法.说明你已经知道这个方法提供的功能已经满足你要求,不需要进行扩展,并且也不允许任何从此类继承的类来覆写这个方法,但是继承仍然可以继承这个方法,也就是说可以直接使用 inline扩展.允许编译器将所有对此方法的调用转化为inline调用的机制,它会使你在调用final方法时,直接将方法主体插入到调用处,而不是进行例行的方法调用,例如保存断点,压栈等,这样可能会使你的程序效率有所提高,然而当你的方法主体非常庞大时,或你在多处调用此方法,那么你的调用主体代码便会迅速膨胀,可能反而会…
(String) str.trim() 该方法返回一个复制该字符串的开头和结尾的白色空格去掉,或字符串,如果它没有头或尾空白. (Boolean) str.contains(str1) 判断 str 中是否包含str1 (String) str.replace("str1","str2") (String) str.replaceAll("str1","str2") (String) str.replaceFrist(&quo…
join()方法用于让当前执行线程等待join线程执行结束.其实现原理是不停的检查join线程是否存活,如果join线程存活则让当前线程永远等待. join()方法部分实现细节 while(isAlive()) { wait(0) } 其中wait(0)表示永远等待下去. join线程中止后,线程的this.notifyAll()方法会被调用,调用notifyAll()是在JVM里调用的所有在JDK中看不到,大家可以看JVM源码 示例程序: public calss ThreadTest{ pu…
//要import java.util.Arrays: fill(int[] a,int value);//对a数组进行全部用value填充 fill(int[] a,int fromIndex,int toIndex,int value);//对a数组[fromIndex,toIndex)进行用value填充 Array.sort(object);//对object进行sort copyOf(arr,int newLength)://int 用0填充,char 用null填充 copyOfRa…
   Windows---prefrence--workspace--text file encoding亲测有效…