java基础
tssit
自由在高处
展开
-
List为什么不能一边遍历 一边操作
1、对于ArrayList,在使用Iterator遍历时,不能使用list.add()、list.remove()等改变list的操作,只能用it.remove()原因是ArrayList不是线程安全的,需在单线程环境下使用,如果在遍历时还有别的线程做增删操作,必然会有问题,如数组下标越界ArrayList#Iterator设计的是不能在迭代时有别的线程对list修改,此种修改对当前迭代器是可能存在问题的,所以增加了对modCount的校验但当前迭代器可以remove,因为它自己删除就不是并发修改了原创 2020-05-22 09:51:06 · 796 阅读 · 0 评论 -
JavaIO之数据流
数据流是缓冲流的包装类,缓冲流又是FileInputstream的包装类,此类里面有各种写入数据的方法package com.sxt.homework;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutput...原创 2018-04-17 10:25:39 · 182 阅读 · 0 评论 -
javaIO之序列化和反序列化
序列化就是把程序中的的非静态的成员变量存储到文件中,反序列化就是把序列化文件变成程序。注意序列化和反序列化的过程中,类一定要相同。创建类:package com.sxt;import java.io.Serializable;public class Student implements Serializable{ //实现接口,此接口中没有任何方法,只是标识接口 /** * ...原创 2018-04-17 11:55:59 · 143 阅读 · 0 评论 -
JavaIo之遍历自己代码行数
这道题考的是递归和BufferedReader方法的结合。package com.sxt.homework;import java.io.*;import java.util.ArrayList;public class LineNumbers { static int sun=0; ArrayList<File> ar=new ArrayList<File>(...原创 2018-04-17 13:25:02 · 178 阅读 · 0 评论 -
java四种内部类
1.成员内部类,放在类中,实例方法是:new Outer().new Inner();package com.niming;public class OuterStatic { static String name; int age; public void run() { System.out.println("外部类"); } static class Inner { ...原创 2018-04-04 17:22:52 · 277 阅读 · 0 评论 -
集合框架Collection
Collection集合用于存储对象,长度是可变的,共有的方法有:增:add删;remove获取:size判断:contains,isEmpetyList 集合是:有顺序,可以重复,其中特有的方法有获取:get(),subList(),listIterator改:set()ArrayList:底层是数组结构,方法和List相同LinkedList:底层是链表结构,特有的方法有:增:add...原创 2018-04-12 14:11:21 · 128 阅读 · 0 评论 -
HashMap的三种遍历方法
package com.sxt.map;import java.util.Collection;import java.util.HashMap;import java.util.Map.Entry;import java.util.Set;public class MapDmeo { public static void main(String[] args) { Has...原创 2018-04-12 14:38:23 · 202 阅读 · 0 评论 -
Arrays工具类最常见用法
1. asList方法 使用该方法可以返回一个固定大小的List,如: List<String> stringList = Arrays.asList("Welcome", "To", "Java", "World!"); List<Integer> intList = Arrays.asList(1, 2, 3, 4);2. binarySe转载 2018-04-13 11:03:04 · 237 阅读 · 0 评论 -
常见字符串判空和数组判空
字符串,判断不为空和不为“”,在此之前最好把对象也进行判空处理,防止空指针异常if (null != username && !"".equals(username) &&...)数组判空,判断不为空,且长度大于0byte b;b!=null&&b>0;...原创 2018-04-23 10:03:28 · 4044 阅读 · 0 评论 -
简单实现一个ArrayList
ArrayList底层使用数组实现的,长度是可变的,理解了这个后,我就做了简单的ArrayList。package com.sxt;public class MyArayList<T> { int i=10; int j=0; T[]date =(T[])new Object[i];; public void add(T t) { //添加数组 if(j==i) ...原创 2018-04-13 21:26:08 · 217 阅读 · 0 评论 -
用数组实现简单堆栈
堆栈:先进后出队列:先进先出package com.sxthomework;public class MyStackDmeo<T> { int i=0; int j=10; MyStackDmeo(){} MyStackDmeo(int m){ //构造函数给数组定义空间 this.j=m; } T []date=(T[])new Ob...原创 2018-04-13 21:37:47 · 650 阅读 · 0 评论 -
自定义实现集合的Reverse对象
用了两个集合,用for循环倒着遍历一个集合,取出一个元素,放入到另一个集合里面package com.sxt;import java.util.ArrayList;import java.util.List;public class ReverseDemo { List<Object> ar=new ArrayList<Object>(); public vo...原创 2018-04-13 21:49:29 · 194 阅读 · 0 评论 -
Java zip解压工具类
分享一个自己用的zip工具类public class ZipUtils { public static void unZip(File srcFile, String destDirPath) throws RuntimeException { long start = System.currentTimeMillis(); // 判断...原创 2019-03-13 17:48:55 · 2220 阅读 · 1 评论 -
java 集合list转数组的几种方式
1.toArrayeg: list.toArray(new String[list.size])这里要注意list类型,和数组的类型是一致的,这里我默认list是string,假如list是Integer类型,那就是list.toArray(new Integer[list.size])2.stream 流list.toStream.toArray(String[]:new)...原创 2019-04-04 09:35:37 · 20968 阅读 · 2 评论 -
JoIntPoint常用方法
在常见的切面中,常用的参数有:JointPoint和ProceedingJoinPoint,其中ProceedingJoinPoint继承JointPoint,ProceedingJoinPoint用在@Arround注解的方法参数里,下面分开谈1.JointPoint的常用方法public void invoke(JoinPoint joinPoint) throws Throwab...原创 2019-04-28 11:56:06 · 5168 阅读 · 0 评论 -
设计模式-总结
1.单例模式:懒汉,饿汉,加锁,双重判断(加voletal),静态内部类2.工厂3.静态工厂4.代理5.装饰器,区分代理和装饰器,代理模式的类是内部创建好,装饰器是外部传入6.观察者模式7.原型模式(实现clonable接口)8.适配器模式:创建一个对象,调另一个对象的方法9.组合模式:放一个list属性10.策略模式:方法参数是接口,具体的策略要自己实现1...原创 2019-09-03 18:37:37 · 193 阅读 · 0 评论 -
Calendar日历类常用方法总结
日历类是一个抽象类,用的是Java中的工厂模式由于是抽象类,用它的静态方法返回对象Calendar cl =Calendar.getInstance();设置时间c1.set( )返回时间c1.get静态属性Calendar.得到Date对象即日期,注意:Date 类里面的方法是返回毫秒数getTime();...原创 2018-04-11 15:06:05 · 297 阅读 · 0 评论 -
BigDecimal常用方法
package com.sxt;import java.math.BigDecimal;import java.math.RoundingMode;public class BigDecimalDemo { public static void main(String[] args) { //bigDecimal 常常用于精确数字的计算 BigDecimal b=new Big...原创 2018-04-11 15:00:14 · 648 阅读 · 0 评论 -
java字符串编码转换
java种常常遇到字符串转换问题,可以先把字符串转换成byte 数组,再转换成字符串,来解决问题 String s1="张三"; //定义一个字符串张三 try { byte b[]=s1.getBytes("UTF-8"); //UTF-8的方式取出 String s2=new String (b,"UTF-8"); //UTF_8的方法转成字符串 S...原创 2018-04-10 10:01:14 · 1412 阅读 · 0 评论 -
基本数据类型转为String类型的4种常见方法
1.toString先把基本数据类型装箱,再用对象的toString()方法2.String类的valueOf方法 这是一个静态方法,几乎可以把各种类型转换为字符串String.valueOf();注意区别包装类的valueOf方法,那个也是静态方法,返回的是包装类型。3.加一个“”来实现自动转型4.如果是数组的话,通过构造方法可以直接把数组转换为字符串...原创 2018-04-10 10:28:47 · 8376 阅读 · 0 评论 -
String s="a"+"b"+"c"+"d"生成几个对象
一个,因为jvm对常量池的字符串做了优化,在定义的时候直接忽略了加号。原创 2018-04-10 11:06:29 · 1389 阅读 · 0 评论 -
java中String类的方法总结
package com.sxt;import java.util.Arrays;public class StringDemo01 { public static void main(String[] args) { String s=" a#cc#de#f"; //定义一个字符串 char ss[]=s.toCharArray(); ...原创 2018-04-10 16:21:51 · 171 阅读 · 0 评论 -
StringBuffer,StringBuilder方法总结
Stringbuffer 和StringBuilder 方法一样,前者是线程安全的,效率相对较低,后者是线程不安全的执行效率更高,使用要看具体情况。package com.sxt;public class StringBufferDemo { public static void main(String[] args) { StringBuffer sb=new St...原创 2018-04-10 16:24:48 · 220 阅读 · 0 评论 -
java里面的date类用法
Date类在java.util包中,常常用来表示当前的时间,我们可以直接打印Date的对象来获取当前时间Date d=new Date();System.out.println(d); //打印的是美国时间表示格式 Date类中也有丰富的方法,比如getTime()方法表示的是,从1970年0点0分到现在的毫秒数Date d=new Date();System.out.pri...原创 2018-04-10 18:00:17 · 767 阅读 · 0 评论 -
java类初始化的调用顺序
class Fu{ static { System.out.println("父类静态代码块"); } { System.out.println("父类普通代码块"); } public Fu(){ System.out.println("父类构造方法"); } }public class ShunXu extends Fu { static { Sys...原创 2018-04-03 15:48:07 · 156 阅读 · 0 评论 -
javaIo之File类常用方法总结
file类的没有空参数的构造函数,初始化时一般都要传入一个路径package com.sxt;import java.io.File;import java.io.IOException;import java.util.Date;public class FileDemo { public static void main(String[] args) throws IOExcep...原创 2018-04-16 13:33:27 · 393 阅读 · 0 评论 -
递归算法遍历所有文件
package com.sxt;import java.io.File;import java.io.IOException;import java.util.Date;public class FileDemo { public static void main(String[] args) throws IOException { File f=new File("F:/a/...原创 2018-04-16 13:35:18 · 434 阅读 · 0 评论 -
==和equals的区别
==用于基本数据类型,比较两个值是否相等用于引用数据类型,比较两个内存地址是否相等equals用于引用数据类型的比较比较两个对象的内容是否相等(String)。非String类型的需要重写equals方法和hashcode()。...原创 2018-04-03 17:23:16 · 275 阅读 · 0 评论 -
一句话解释为什么要同时重写equals和hashcode
重写 hashcode 方法是为了让我们能够正常使用 HashMap 等集合类,因为 HashMap 判断对象是否相等既要比较 hashcode 又要使用 equals 比较。而这样的实现是为了提高 HashMap 的效率...原创 2018-04-03 17:24:42 · 666 阅读 · 0 评论 -
java中的toString 方法的复写
toString 方法继承自object该toString类方法Object返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串@ ”和对象的哈希码的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串: getClass().getName() + '@' + Integer.toHexString(hashCode)这句话的意思是我们不复写此方法直接打印对象,会返回...原创 2018-04-03 17:35:44 · 1105 阅读 · 0 评论 -
javaIO之缓存流复制文件
缓存流默认32 个字节,增强了功能。1.字节流的缓存流复制文件package com.sxt;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.i...原创 2018-04-16 16:56:00 · 190 阅读 · 0 评论 -
java日历小程序
题目:用java写出一个日历小程序,用SimpleDateFormat类的静态方法parse方法,把字符串变成date对象,再建立两个Calendar对象,一个判断换行,一个判断输入日期,并做标记。package com.sxt;import java.text.ParseException;import java.text.SimpleDateFormat;import java.ut...原创 2018-04-11 13:18:13 · 487 阅读 · 0 评论 -
String类,StringBuffer,StringBuilder运行效率测试
计算生成1到100000的字符串,各自需要多少时间,计算时间的方法是用date类中的gettime()方法,注意:gettime()得到的时间是对象生成时,到1970年1月1日0点的毫秒数,并不是方法调用时的毫秒数。源码如下:package com.homework;import java.util.Date;public class TimeCeshi { public static ...原创 2018-04-11 13:44:53 · 784 阅读 · 0 评论 -
java包装类
java基本数据类型装换为包装类需要装箱和拆箱操作。拆箱操作是用的.XXXvalue()方法。 int i=1; //定义了一个基本数据类型 Integer ii=new Integer(i); //装箱操作 int iii=ii.intValue(); //拆箱操作包装类里面两个最常用的方法,XXX.valueOf(S...原创 2018-04-09 17:05:39 · 120 阅读 · 0 评论