java基础
xiaozhu0301
这个作者很懒,什么都没留下…
展开
-
isAssignableFrom()方法与instanceof关键字用法
isAssignableFrom()方法与instanceof关键字的区别总结为以下两个点:isAssignableFrom()方法是从类继承的角度去判断,instanceof关键字是从实例继承的角度去判断。 isAssignableFrom()方法是判断是否为某个类的父类,instanceof关键字是判断是否某个类的子类。使用方法:父类.class.isAssignableFrom(子类.class)子类实例 instanceof 父类类型isAssignableFrom()方法的调转载 2021-02-01 23:13:29 · 821 阅读 · 0 评论 -
Java中如何高效的判断数组中是否包含某个元素
如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow中也是一个非常热门的问题。在投票比较高的几个答案中给出了几种不同的方法,但是他们的时间复杂度也是各不相同的。本文将分析几种常见用法及其时间成本。检查数组是否包含某个值的方法使用Listpublic static boolean useList(String[] arr, String targetValue) { return Arrays.asL转载 2022-05-17 09:17:20 · 7046 阅读 · 0 评论 -
String的Intern方法详解
引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。 如果不是用双引号声明的String对象,可以使用String提供的intern方法。intern 方法会从字符串常量池中查询当前字符串是否存在,若转载 2020-12-18 17:20:41 · 2594 阅读 · 2 评论 -
泛型中? super T和? extends T的区别
经常发现有List<? super T>、Set<? extends T>的声明,是什么意思呢?<? super T>表示包括T在内的任何T的父类,<? extends T>表示包括T在内的任何T的子类PECS请记住PECS原则:生产者(Producer)使用extends,消费者(Consumer)使用super。生产者使用ext...转载 2019-06-05 15:36:17 · 497 阅读 · 0 评论 -
java泛型中T和?(通配符)的区别与使用声明
原文:http://blog.csdn.net/jianghuxiaojin/article/details/51457773类型本来有:简单类型和复杂类型,引入泛型后把复杂类型分的更细了;现在List<Object>, List<String>是两种不同的类型;且无继承关系;泛型的好处如:开始版本public void write(Integer...转载 2019-06-04 18:57:35 · 2351 阅读 · 0 评论 -
Java泛型中E、T、K、V等的含义
E- Element (在集合中使用,因为集合中存放的是元素)T- Type(Java 类)K- Key(键)V- Value(值)N- Number(数值类型)?- 表示不确定的java类型S、U、V- 2nd、3rd、4th typesObject跟这些标记符代表的java类型有啥区别呢?Object是所有类的根类,任何类的对象都...转载 2019-06-04 18:54:19 · 394 阅读 · 0 评论 -
java 中泛型的原理以及应用场景
Java从1.5之后支持泛型,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。入不支持泛型,则表现为支持Object,不是特定的泛型。泛型是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数...原创 2017-09-26 16:22:57 · 533 阅读 · 1 评论 -
BIO、NIO、AIO区别与联系
IO的处理过程:该模式下每个请求都会创建一个线程,有点事稳定,适合连接数目小且固定架构。缺点是对性能开销大,不适合高并发场景。为解决这一问题JAVA在1.4之后增加了NIO,该模式基于多路复用选择器监测连接状态再通知线程处理,从而达到非阻塞的目的,比传统的BIO能更好的支持并发性能。同步阻塞IO(JAVA BIO): 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当...转载 2020-08-05 19:17:30 · 4815 阅读 · 0 评论 -
字节流与字符流转换
字节流与字符流之间的区别却可以联系起来,这就是表中的两个类InputStreamReader和OutputStreamWriter。InputStreamReader负责把字节输入流转换为字符输入流,OutputStreamWriter负责把输出字节流转换为输出字符流。下面来看看如何进行转换。1.字节输入流转换为字符输入流InputStreamReader是字节流通向字符流的桥梁,转载 2016-06-06 09:12:17 · 10262 阅读 · 0 评论 -
读写文件的工具类IOUtils 和FileUtils
File 文件拷贝的时候 直接用 FileUtils.copy(file,new File(path))MutipartFile 文件拷贝的时候 可以用 IOUtils.copy(file.getOutputStream(),new InputStream(path))也可以用file.transferTo(destSrc);原创 2015-09-26 10:23:15 · 1624 阅读 · 0 评论 -
Java 中的取模和取余
期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation)。计算方法对于整数 a,b来说,取模运算和取余运算的过程相同:求整数商:c=a/b 计算模或者余数:r=a−c×b只是取模和取余在第一步求商的方法上有所不同:取余运算在取 c的值时,向 0 方向舍入( fix() 函数);而取模运算在计算 c的值时,向负无穷方向舍入( floor() 函数)。Java 示例Java转载 2020-07-04 10:22:18 · 4339 阅读 · 0 评论 -
Java transient关键字使用
1. transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列...转载 2020-05-25 17:56:52 · 97 阅读 · 0 评论 -
比较器 Comparator
比起Comparable接口比较器Comparator为我们在排序中提供了更宽松和更加广泛的应用实例:在实际中,常常需要对一个商品按照不同属性来排序,这时我们就能通过写出自己的Comparator来实现不同的排序方式[java] view plain copy[java] view plain copypublicclassGoods{ private...原创 2019-07-23 11:01:33 · 589 阅读 · 0 评论 -
JAVA中ListIterator和Iterator详解与辨析
在使用Java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置。首先看一下Iterator和ListIterator迭代器的方法有哪些。Iterator迭...原创 2019-06-05 17:54:37 · 93 阅读 · 0 评论 -
jdk编译版本
使用Ultra Edit打开class文件只看第一行的数据:(1)前面8个字节CA FE BA BE是固定的。(2)随后4个字节00 00是次版本号(3)再后面的4个字节00 34是JDK的版本号(JDK1.8)。 JDK版本号对应关系如下: 34(对应十进制的50):JDK1.8 33(对应十进制的50):JDK1.7 32(对应转载 2018-02-06 18:53:39 · 392 阅读 · 0 评论 -
java中对数组的操作
一.数组:1>打印数组中的元素:不用循环,直接用Arrays.toString(),转化后字符串的长度为:数组长度a a+(a-1)*2(逗号和空格)+2(中括号)Integer[] intArr ={1,2,3}; //以下输出结果为:[1, 2, 3]length:9 System.out.println(Arrays.toString(intArr)+"length原创 2015-06-07 18:29:29 · 526 阅读 · 0 评论 -
java中对字符串的操作
工具类StringUtils:StringUtils.leftPad(String str,Integer i) :解释: 向字符串str补齐,补齐到i位字符第三个参数可无,那么就是以空格补齐StringUtils.leftPad(“wan”,10);// wan为字符类型时:如:StringUtils.leftPad(“1”,3,’0’)//结果为 00原创 2015-06-08 16:23:20 · 407 阅读 · 0 评论 -
poi导出excel数据
POI介绍Apache POI是Apache软件基金会的开放源码函式库,是用Java编写的免费开源的跨平台的 Java API,POI提供API给Java程序对Microsoft Office格式档案进行各种操作。POI主要用到的类有HSSFWorkbook、HSSFSheet、HSSHRow、HSSFCell,HSSFWorkbook是Excel文件对象、HSSFShee原创 2015-06-07 16:57:31 · 623 阅读 · 0 评论 -
Date String Timestamp之间的相互转化
一、String与Date(java.util.Date)互转 1.1 String -> Date String dateStr = “2010/05/04 12:34:23″; Date date = new Date(); //注意format的格式要与日期String的格式相匹配转载 2015-07-01 10:23:12 · 554 阅读 · 0 评论 -
System常用的方法
System 类常用的方法: System.out.println("用户的主目录"+System.getProperty("user.home"));//C:\Users\admin System.out.println("用户的账户名称"+System.getProperty("user.name"));//admin Syst原创 2015-10-23 14:17:01 · 413 阅读 · 0 评论 -
初始化list集合
有时候想在初始化一个类之前就给一个list的集合赋值,但是找了许多都没能做到,今天终于解决了这个问题!直接上代码吧,例子如下:private List list=new ArrayList(){ { add("nihao"); add("wohao"); add("dajihao"); } };转载 2015-11-25 15:07:01 · 622 阅读 · 0 评论 -
final类型数据的解析
final :顾名思义是最终的,该变量只能被初始化一次,即被赋一次值,之后不能再被更改 一个已初始化的变量不能再指向另外的值/对象赋值 :指的是该变量的指向的地址是不会变的,如果是对象类型不能再被实例化,如果是简单的数据类型,值不能再被改变 final Map map =new HashMap(); 可以往map里put数据 fin原创 2015-11-25 15:29:26 · 1179 阅读 · 0 评论 -
易错java初级面试题
class A {void fun1() {System.out.println(fun2());} int fun2() {return 123;}} public class B extends A {int fun2() {return 456;} public static void main(String argv[]) {A a;B b = new B原创 2015-11-28 16:49:21 · 773 阅读 · 0 评论 -
SimpleDateFormat 常见的错误
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { Date date = sdf.parse("2015-10-12"); } catch (ParseException e) { e.printStackTrace(); }会出现异常,因为内容和转化的格式不相同Simpl原创 2015-09-26 22:18:10 · 1009 阅读 · 0 评论 -
comparator接口与Comparable接口的区别
1. Comparator 和 Comparable 相同的地方他们都是java的一个接口, 并且是用来对自定义的class比较大小的,什么是自定义class: 如 public class Person{ String name; int age }.当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collect转载 2016-06-20 14:05:28 · 231 阅读 · 0 评论 -
java的动态代理机制详解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口转载 2016-11-30 15:15:35 · 295 阅读 · 0 评论 -
JAVA中使用静态内部类Comparator实现集合的排序
比起Comparable接口比较器Comparator为我们在排序中提供了更宽松和更加广泛的应用实例:在实际中,常常需要对一个商品按照不同属性来排序,这时我们就能通过写出自己的Comparator来实现不同的排序方式 public class Goods{ private int goodsId; //编号 private Strin转载 2017-11-06 11:07:52 · 1049 阅读 · 0 评论 -
java中对集合List的操作
1》创建一个集合类型的变量List list =new ArrayList();2>添加元素:list.add(1);3>修改指定位置上元素的值:list.set(索引位置,重新赋的值)4》删除元素利用IteratorList list =new ArrayList(); for(int i=0;i<10;i++){ list.add(i); } System原创 2015-06-07 19:21:19 · 352 阅读 · 0 评论