java复习小知识(基础不算,有反射,递归)

顺序选择循环,三种
1、至于循环和递归
循环效率更高,但是递归在处理文件递归的时候更为常见快捷
在java中实现传多参
2、public static void main(String[] args)
即数组就是传多参
在scala中用的*符号
def fun4(elements :Int*)={}
3、
1多态(polymorphism)的定义
多态是面向对象的必备特性,
指的是同一接口的不同实现方式,多态允许基类的指针指向子类方法。
在C++中通过虚函数实现。
2多态的作用
1 不必编写每一子类的功能调用,可以直接把不同子类当父类看,
屏蔽子类间的差异,提高代码的通用率/复用率
2 父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性

4、在针对io流时,字符流速度快,但是有的非明文文件,无法用字符解析
这时候用字节流(要捕获异常)


5、下面的构造方法和静态方法,可以参考上一步的构造时顺序(static在类编译时已经加载)






https://www.cnblogs.com/Essence/p/3961857.html






递归查出文件



以及文件过滤

递归删除

反射
package day1207; import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier; public class Refactor {
public static void main(String[] args) {
try {
Class c=Class.forName("day1207.Demo");//映射一个类,反射
// Field[] fields=c.getDeclaredFields();//可以访问所有字段声明
// for (Field f:fields){//分别访问:字段类型、字段名、字段修饰符
// System.out.println(f.getType()+" "+f.getName()+" "+Modifier.toString(f.getModifiers()));
// }
// Field[] fields1=c.getFields();//只能非私有的访问字段
// for (Field f:fields1){
// System.out.println(f.getType()+" "+f.getName());
// }
//Method[] methods=c.getMethods();//全部的方法包括父类
Method[]methods1=c.getDeclaredMethods();//全部方法,不包括父类
// for (Method m:methods){
// System.out.println(Modifier.toString(m.getModifiers())+" "+m.getName()+""+m.getGenericReturnType());
// }
for (Method m:methods1){//分别拿到:方法访问修饰符、方法名、方法类型
System.out.println(Modifier.toString(m.getModifiers())+" "+m.getName()+" "+m.getGenericReturnType());
}
try {
Demo d=(Demo)c.newInstance();//映射一个类的对象,但是拿不到静态和私有
Demo d2=new Demo();
d.setAcccount("s");
d.setName("张三");
System.out.println(d.getName()+" "+d.getAcccount());
String account="456";
String name="李四";
Method method=c.getMethod("setAcccount", String.class);
//用invoke方法,使用反射给类的对象注值
method.invoke(d,account);
method=c.getMethod("setName", String.class);
method.invoke(d2,name);
//javaoop面向对象aop面向切面
System.out.println(d2.getName());
System.out.println(d.getAcccount());
method=c.getMethod("getName");
System.out.println(method.getName());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
java复习小知识(基础不算,有反射,递归)的更多相关文章
- java集合小知识的复习
*Map接口 Map<k,v>接口中接收两个泛型,key和value的两个数据类型 Map中的集合中的元素都是成对存在的每个元素由键与值两部分组成,通过键可以找对所对应的值.值可以重复,键 ...
- Java~时间戳小知识
大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒 ...
- Java入门小知识
软件开发什么是软件? 一系列按照特定顺序组织的计算机数据和指令的集合什么是开发? 制作软件 人机交互 软件的出现实现了人与计算机之间的更好的交互交互方式 图形化界面:这种方式简单直观,使用者 ...
- java算法小知识练习(二)
话不多说,直接上题: 题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单. 有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序 ...
- java算法小知识练习
偶尔翻开了以前的练习题,不自觉又想随手敲一遍,虽然有些思想依然是那么老套,但毕竟也算是对知识的巩固 了. 一.题目:有1.2.3.4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 具体 ...
- Java Interger小知识
Integer装箱与拆箱 装箱: Integer i = 10; 相当于:Integer i = Integer.valueOf(10); 拆箱: Integer i = 10; //装箱 int t ...
- Java基础小知识(一)
序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...
随机推荐
- opensuse下配置IP、DNS、GATEWAY
本人物理主机IP描述 IPv4 地址 . . . . . . . . . . . . : 192.168.1.101(首选)子网掩码 . . . . . . . . . . . . : 255.25 ...
- xmlns:app
Android自定义控件的属性,网上文章已经很多,之前看了也照着写了,其中有一个就是要自定义一个xml的命名空间后然后再给自定义属性赋值,后来发现不知道什么时候开始Android把这个改了,统一用 x ...
- 精《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #4 如何使用Git
HACK #4 如何使用Git 本节介绍Git的使用方法.Git是Linux内核等众多OSS(Open Source Software,开源软件)开发中所使用的SCM(Source Code Mana ...
- 使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling
[问题]使用pandas时遇到ValueError: numpy.dtype has the wrong size, try recompiling [原因] 这是因为 Python 包的版本问题,例 ...
- [RHEL7.1]关闭防火墙及SElinux
一.关闭防火墙 1. 先查看防火墙状态 [root@bogon ~]# 1 systemctl status firewalld firewalld.service - firewalld - dyn ...
- Cmder的安装
Cmder把conemu,git-for-windows和clink打包在一起,让你无需配置就能使用一个真正干净的Linux终端!性感的外观,强大的功能!代替了Windows原生的Cmd 1. 安裝 ...
- 由python的math.log想到的问题
result = math.log(243,3) print(result) 输出5.0 print("%f"%result) 还是输出5.0 看出问题了吗?对,没错.int(5. ...
- mybatis 1 - 获取自增ID
1.环境: mybatis : 3.2.3 spring-mybatis: 1.2.1 mysql:5.5.29 实体: public class sys_user { private int us ...
- 「小程序JAVA实战」小程序的横向视频和页面拦截(59)
转自:https://idig8.com/2018/09/24/xiaochengxujavashizhanxiaochengxudehengxiangshipinheyemianlanjie58/ ...
- notepad++ 行首行尾添加字符
有一次要处理SQL,拿到了脚本.但是要将其写入java 代码中,要在行首和行尾添加上引号.利用notepad++进行编辑. $表示行尾,^表示行首. 如上图,就这样.很高效. 如果只是在行尾添加字符, ...