java
文章平均质量分 64
无区新手
细节决定成败
展开
-
java8之stream流之Collector和Collectors
CollectorCollector是专门用来作为Stream的collect方法的参数的。public interface Stream<T> extends BaseStream<T, Stream<T>> { <R, A> R collect(Collector<? super T, A, R> collector);}而Collectors是作为生产具体Collector的工具类。Collector主要包含五个.转载 2020-11-09 16:20:18 · 2336 阅读 · 0 评论 -
java8新特性之方法引用
java8方法引用有四种形式:静态方法引用 : ClassName :: staticMethodName 构造器引用 : ClassName :: new 类的任意对象的实例方法引用: ClassName :: instanceMethodName 特定对象的实例方法引用 : object :: instanceMethodNamelambda表达式可用方法引用代替的场景可以简要概括为:lambda表达式的主体仅包含一个表达式,且该表达式仅调用.转载 2020-10-28 09:40:34 · 375 阅读 · 0 评论 -
Junit单元测试&反射&注解
Junit单元测试:测试分类:黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 白盒测试:需要写代码的。关注程序具体的执行流程。Junit使用:白盒测试步骤:1. 定义一个测试类(测试用例)测试类名:被测试的类名Test CalculatorTest 包名:xxx.xxx.xx.test cn.itcast.test2. 定义测试方法:可以独立运行方法名:test测试的方法名 testAdd(...原创 2020-05-24 11:53:37 · 334 阅读 · 1 评论 -
Properties
java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v>Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。Properties集合是一个唯一和IO流相结合的集合可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储 可以使用Properties集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用原创 2020-05-23 13:00:00 · 294 阅读 · 0 评论 -
POI&easyExcel
POI 和 easyExcel 讲解将用户信息导出为excel表格(导出数据....) 将Excel表中的信息录入到网站数据库(习题上传....)开发中经常会设计到excel的处理,如导出Excel,导入Excel到数据库中!操作Excel目前比较流行的就是 Apache POI 和 阿里巴巴的 easyExcelApache POIApache POI 官网:https://poi.apache.org/easyExceleasyExcel 官网地址:ht..原创 2020-05-19 18:32:57 · 393 阅读 · 0 评论 -
Java递归练习题
1,从键盘接收一个文件夹路径,统计该文件夹大小package demo;import java.io.File;import java.util.Scanner;public class Test1 { public static void main(String[] args) { File file = getDirectory(); System.out.prin...原创 2020-02-12 18:17:11 · 1627 阅读 · 0 评论 -
IO流面试题
定义一个文件输入流,调用read(byte[] b)方法,将a.txt文件中的内容打印出来(byte数组大小限制为5)FileInputStream fis = new FileInputStream("a.txt");//创建字节输入流,关联a.txtByteArrayOutputStream baos = new ByteArrayOutputStream();//创建内存输出流by...原创 2020-02-12 13:47:23 · 113 阅读 · 0 评论 -
File文件操作
File相对路径:我在湖北,你在湖南,相对于你来说,我在你隔壁,这叫相对路径。绝对路径:我在湖北,你在湖南,我的位置是在地球/亚洲/中国/湖北,你的位置是在地球/亚洲/中国/湖南,这就叫绝对路径。构造方法File(String pathname):根据一个路径得到File对象File file = new File("F:\\a\\1.txt");File(Str...原创 2019-08-09 15:04:13 · 353 阅读 · 0 评论 -
正则表达式
字符类:[abc] a、b或c(简单类)String regex = "[a,b,c]"; //[]代表单个字符System.out.println("a".matches(regex)); //true System.out.println("b".matches(regex)); //trueSystem.out.println("c".matches(reg...原创 2019-12-29 10:03:24 · 226 阅读 · 0 评论 -
多态性
多态性也是面向对象程序设计的另一个重要特点。方法的多态,即多种形式,是指属性或方法在子类中表现为多种形态,若以父类定义对象,并动态绑定对象,则该对象的方法将随绑定对象不同而不同。利用多态可以使程序具有良好的扩展性,程序可以对所有类对象进行通用的处理。Java中实现多态可以通过方法重载实现编译时多态(静态多态),也可以通过对父类成员方法的重写实现运行时多态(动态多态)。1.编译时多态编译...翻译 2018-04-02 12:20:50 · 426 阅读 · 0 评论 -
抽象类和最终类
1.抽象类类的声明中有abstract关键字的类称为抽象类,抽象类位于类的层次较高层次,不能被实例化,即不能创建抽象类的实例对象。没有abstract关键字修饰的类称为具体类,具体类可以实例化。在程序设计中,抽象类常用于对某些类进行概括和抽象,即抽象类定义其子类共有的属性和方法,以免子类重复定义。也就是说,抽象类主要用于定义为若干个功能类同的类的父类。定义抽象类的目的是为了其子类奠定基...翻译 2018-04-02 13:08:59 · 5733 阅读 · 0 评论 -
构造方法
Java中的每个类都有构造方法,它是类的一种特殊的方法,构造方法的民主国i和类名完全相同,对象的创建就是通过构造方法完成的,当类实例化一个对象时,类会自动调用构造方法,构造方法的基本特点如下:(1)构造方法没有返回值,也不用void修饰。(2)构造方法的名称要与本类的类名相同。(3)构造方法可以重载。(4)构造方法不能由用户直接调用,只有使用new创建对象时系统自动调用。构造方...翻译 2018-03-27 13:41:29 · 149 阅读 · 0 评论 -
继承
如果类B具有类A的全部属性和方法,而且又具有自己特有的某些属性和方法,则把类A称为一般类,把类B称为特殊类。这种一般和特殊的结构,可以用继承所表达和实现,继承使得某类对象可以继承另外一类对象的属性和方法。若类B继承类A时,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作)。称被继承的类A为基类.父类或超类,而称继承类B为A的派生类或子类。类继承又称类派生,是基于某个父类的扩...翻译 2018-03-27 14:36:47 · 142 阅读 · 0 评论 -
接口
Java语言只支持单继承机制,不支持多继承。一般情况下,单继承就可以解决大部分子类对父类的集成问题。但是,当问题复杂时,若只使用单继承,可能会给设计带来许多麻烦。Java语言解决这个问题的方法是使用接口。 接口是面向对象的有又一重要的概念,也是Java实现数据抽象的重要途径。接口是比类更抽象的概念,一个类通常规定了同一类事物应有的静态属性和动态行为,而一个接口规定了一系列类应有的...翻译 2018-04-03 14:58:34 · 246 阅读 · 0 评论 -
包
1.包的概念 包是Java提供的文件组织方式。一个包对应一个文件夹,一个包中可以包括很多类文件,包中还可以有子包,形成包等级。Java把类文件放在不同等级的包中。这样一个类文件就会有两个名字:一个是类文件的短名字,另外一个是类文件的全限定名。短名字就是类文件本身的名字,全限定名则是在类文件的名字前面加上包的名字。 使用包不仅方便类文件的管理,而且扩大了Java命名空间。不同的程...翻译 2018-04-03 20:10:18 · 264 阅读 · 0 评论 -
位运算符
1.逻辑或( || 当条件有一个为true时,则条件为true) int a = 10; int b = 11; System.out.println(a > 10 || b > 10);//true2.逻辑与( && 当条件有一个为false时,则条件为false) int a = 10; int b = 11; System.ou...原创 2019-07-08 10:43:56 · 312 阅读 · 0 评论 -
StringBuffer类和StringBuilder类
StringBuffer和StringBuilder具有相同的方法和属性,唯一的区别在于,StringBuffer更安全,StringBuilder更快。StringBuffer是jdk1.0版本的,是线程安全的,效率低StringBuilder是jdk1.5版本的,是线程不安全的,效率高String是一个不可变的字符序列StringBuffer,StringBuilder是可变的...原创 2019-07-30 13:06:57 · 258 阅读 · 0 评论 -
ArrayList集合和LinkedList集合
集合的由来:数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少数组和集合的区别 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值 集合只能存储引用数据类型(对象)集合中也可以存储基本数据...原创 2019-08-04 11:18:09 · 808 阅读 · 0 评论 -
面向对象
成员变量和局部变量的区别A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存(成员变量属于对象,对象进堆内存) 局部变量:在栈内存(局部变量属于方法,方法进栈内存) C:生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而...原创 2019-07-23 15:43:49 · 258 阅读 · 0 评论 -
HashSet集合和TreeSet集合
HashSet 没有下标,不能存放重复元素 初始容量为16,负载因子0.75,到容量被用到0.75 = 3/4的时候自动扩容 底层结构是哈希表 增删元素速度快,但相对的,占用的空间大 元素不能重复,并且无序 存储方式是散列存储 当存储一个元素的时候,它先判断它的hashcode和集合里面的元素的hashcode是否相等,如果不相等,则...原创 2019-08-05 15:07:13 · 301 阅读 · 0 评论 -
HashMap集合、TreeMap集合、HashTable集合
Map 双列集合 Key,value 以"键/值"对存放元素 键值(Key)不可重复,值(value)可重复 一般把键值对称为映射 HashMap 键值不能重复,并且无序,可以键和值都可以存放null值 线程不安全 底层结构跟HashSet一样 put(K Ket,V value)添加到集合中的键值对,如果有...原创 2019-08-05 16:50:02 · 212 阅读 · 0 评论 -
String类、Math类、System类、BigInteger类、BigDecimal类常用方法
StringindexOf(String str) indexOf(String str,int i)根据字符串来返回索引,参数可以是字符串,ascii码,第二个参数表示从下标为i的开始查找String str = "abcde";int index = str.indexOf("d");System.out.println(index);//结果为3String...原创 2019-07-27 20:18:38 · 666 阅读 · 0 评论 -
Date类、SimpleDateFormat类、Calendar抽象类
DateDate date = new Date();System.out.println(date);//Tue Jul 30 13:20:18 CST 2019/*星期Monday星期一Tuesday星期二Wednesday 星期三Thursday 星期四Friday 星期五Saturday 星期六Sunday 星期天月份January 一月Febr...原创 2019-08-01 19:11:34 · 225 阅读 · 0 评论 -
IO流,字节流,字符流,序列流,内存流,对象流,打印流,随机访问流,Properties类
流(Stream)就是计算机中数据的流动IO流是单词Input Output Stream的缩写Java提供了单独的一个包java.io来处理输入输出流java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能流的分类 从流的流动方向来看,可以将IO流分为输入流和输出流 从流的数据处理单位来看,可以将IO流分为字节流和字符流 从流的功能来看,还可...原创 2019-08-09 14:39:07 · 186 阅读 · 0 评论 -
多线程
线程 线程是程序执行的一条路径,一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率,可以同时完成多项工作 比如:听歌的同时浏览网站,聊qq。手机后台也可以同时执行多个后台程序。并行和并发并行:两个任务同时进行,甲任务进行的同时,乙任务也在进行。(需要多核CPU)并发:两个任务都进行请求运行,而处理器只能接受一个任务,就把这两个任务安排轮流进行,由于时...原创 2020-02-13 20:31:33 · 175 阅读 · 0 评论 -
关于自增和赋值的运算
a=i++ 等价于 先执行a=i然后再运算i++ 但自增的运算优先级比赋值要高,不应该是 先运算i++然后再执行a=i吗原创 2017-11-01 17:42:11 · 1946 阅读 · 1 评论 -
对象类型转换
1.向上转型向上转型是指父类引用子类对象,就是子类对象能转换成父类对象。假设有父类Person类对象p和子类Student对象s,则Person p;p=new Student(); //父类Person对象p引用子类Student新创建的对象Student s=new Student();p=s; //父类Person对象p引用子类Student对象s也可以直接写成:...翻译 2018-04-01 23:01:13 · 2424 阅读 · 0 评论 -
构造方法的继承
构造方法是类的一类特殊的方法,是创建对象实例的唯一方法。它的名字与类名完全相同且不返回任何数据类型,包括void也不能用。如果在类中没有声明构造方法,则Java会自动提供一个默认的构造方法。构造方法可以重载,但不能被重写。在子类继承父类的构造方法,必须遵循以下原则:(1)子类无条件继承父类的无参的构造方法,并在创建新子类对象时自动执行。(2)子类不能继承父类的带参数的构造方法,而只能通...翻译 2018-03-31 14:44:21 · 3447 阅读 · 0 评论 -
switch语句
1.switch语句(有break语句) switch(表达式){ case value1://程序语句 break; case value2://程序语句 break; case value3://程序语句 break; case value4://程序语句 break; default://程序语句 } 表达式类型:byte shor...翻译 2017-10-27 17:34:38 · 178 阅读 · 0 评论 -
break用法
break语句break:强制当前循环终止break跳出当前循环跳出循环后继续执行后面的代码public class Test_9 { public static void main(String[] args) { // TODO Auto-generated method stub for(int i = 1;i<10;i++){ Syste...翻译 2017-10-30 11:59:47 · 2745 阅读 · 1 评论 -
continue用法
continue语句 停止本次循环,继续执行剩下的循环 public class TestContinue { public static void main(String[] args) { for(int i=0;i<10;i++) { if(i==6) { continue; } System.out.println(i); } }...翻译 2017-10-30 12:01:04 · 5500 阅读 · 0 评论 -
return用法
return语句 从当前的方法中退出,执行return,该方法内,后面剩余的代码都不会执行。 public class TestReturn { public static void main(String[] args) { for(int i=0;i<10;i++) { if(i==6) { //break;会执行 hello //...翻译 2017-10-30 12:01:52 · 692 阅读 · 0 评论 -
创建数组
创建数组 public static void main(String[] args){} ArrayType arrayName[]=new ArrayType[length]; ArrayType[] arrayName=new ArrayType[length];//常用的写法 public class TestInitArr { public static void ...翻译 2017-10-31 14:30:25 · 242 阅读 · 0 评论 -
初始化数组
初始化数组 第一种初始化方式 int[] array1=new int[5]; array1[0]=1; array1[1]=2; array1[2]=3; array1[3]=4; array1[4]=5; 第二种初始化方式 int[] array2={6,7,8,9,10}; public class TestInitArr2 { public static...翻译 2017-10-31 14:31:54 · 1127 阅读 · 0 评论 -
第一个自己写的小程序
import java.util.Scanner;public class LY06 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int LY02; do { System.out.println(" 作者:来自移动(2)班...原创 2017-11-09 07:57:13 · 295 阅读 · 0 评论 -
如何使用数组
import java.util.Scanner; public class Test { public static void main(String[] args) { //学生成绩管理系统 int student;//控制学生的变量 double sum=0,avg=0; //总成绩和平均成绩 double[] temp=new double[10]; ...翻译 2017-11-08 09:47:05 · 1531 阅读 · 0 评论 -
类的访问修饰符
Java语言中类的访问权限控制符有public.protected.default.private四个,在定义类时,访问控制修饰符只能一个。每个Java程序的主类都必须是public类,主类必须具有文件名称相同的名字。在类体定义时用到了类及其成员的修饰符,这些修饰符包括访问控制修饰符和类型修饰符,访问控制修饰符主要用于定义类及其成员的作用域,可以在哪些范围内访问类及其成员。类型说明符主要用于定...翻译 2018-03-19 13:26:30 · 1439 阅读 · 0 评论 -
访问权限
访问控制修饰符说明类或雷的成员的可访问范围,用public修饰的类或成员拥有公共作用域,表明此类或类的成员可以被任何Java中的类所访问,有最广泛的作用范围。用protected修饰的变量或方法拥有受保护作用域,可以被同一个包中所有的类及其他包中该类的子类所访问。用private修饰的变量或方法拥有私有作用域,只能在此类中访问,在其他类中,包括该类的子类中也是不允许访问的,private是做...翻译 2018-03-19 13:09:10 · 203 阅读 · 0 评论 -
方法重载和方法重写
1.方法重载同一个类中的两个或两个以上的方法可以有同一个名字,只要它们的参数生命不同即可。在这种情况下,该方法就被称为重载,这个过程称为方法重载。public void myprint(int i)public void myprint(float f)public void myprint()当一个重载方法被调用时,Java用参数的类型和(或)数量来表明实际调用的重载方法的版...翻译 2018-03-22 13:41:59 · 342 阅读 · 0 评论 -
嵌套if语句
嵌套if语句 if(语句1){ //语句块1 if(条件2){ //语句块2 }else{ //语句块3 } }else{ //语句块4 } if -else 阶梯形式 if(条件1){ //语句块1 }else if(条件2){ //语句块2 }else if(条件3){ //语句块3 }else{ //语句块4} p...翻译 2017-10-27 17:33:25 · 2672 阅读 · 0 评论