Java没Virtual虚函数的
java中没有virtual这个关键字,virtual是C++中用来声明虚函数时用的. C++中用虚函数来表现多态性。
Java中没有Virtual关键字,没有虚方法的概念。在Java中,如果函数不是抽象函数,而是一个普通函数,它是默认实现类似C#中虚函数功能的。也就是说,调用某个函数,是根据当前指针所指向对象的类型来判断的,而不是根据指针类型判断。正好与C#中的普通函数相反。即:JAVA里自动实现了虚函数。
Java构造函数
1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)
2.每个类可以有一个以上的构造器
3.构造器可以有0个、1个或1个以上的参数
4.构造器没有返回值
5.构造器总是伴随着new操作一起调用
Java中delete的使用
如果 “D:/defonds/temp” 是一个空目录的话,可以成功删除。但是如果是一个非空目录的话,就无法成功删除,必须将其子文件(目录)删除干净才可删除成功。使用以下的方法可以成功删除非空文件夹:
或者
class类中的newInstance()和new()方法(方法每次都会初始化)
1.new 是java中的关键字,是创建一个新对象的关键字。用new这个关键字的话,是调用new指令创建一个对象,然后调用构造方法来初始化这个对象,如果反编译class的话,会看到一个Object obj=new Object();这种语句,会先调用new指令生成一个对象,然后调用dup来复制对象的引用,最后调用Object的构造方法。
2.newInstance 不是关键字,newInstance() 是java反射框架中类对象(Class)创建新对象的方法。在这个过程中,是先取了这个类的不带参数的构造方法,然后调用构造方法的newInstance来创建对象名:Object java.lang.Class.newInstance();如: Class clazz = String.class;Object newInstance = clazz.newInstance();
3.newInstance() 也经常见于工厂设计模式中,在该模式中,共产类的该方法返回一个工厂bean。如: Factory factory = new Factory();Object obj = factory.newInstance()。
核心两个接口的容器
1.ApplicationContext(单例对象适用):它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取完配置文件就立即创建配置文件中配置的对象;
2.BeanFactory(多例对象适用):它在构建核心容器时,创建对象采取的策略是延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的创建对象。
String和StringBuild和StringBuffer区别
String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类。当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
length()方法,length属性和 size() 方法的区别:
1、length() 方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
2、length 属性是针对 Java 中的数组来说的,要求数组的长度可以用其 length 属性;
3、Java 中的 size() 方法是针对泛型集合说的, 如果想看这个泛型有多少个元素, 就调用此方法来查看!
JSON.parse() 方法用于将一个 JSON 字符串转换为对象。
语法:JSON.parse(text[, reviver])
参数说明:
text:必需, 一个有效的 JSON 字符串。
reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
返回值:返回给定 JSON 字符串转换后的对象。
但是如果使用JSON.parse()方法来转化json对象,需要注意的坑点是什么?
1.字符串的数据格式
str = ‘{“name”:”小明”,”age”:18}’; 属性name和age都用双引号引住,
有的人可能会习惯写成对象形式的字符串,如:str = ‘{name:”小明”,age:18}’;
结果使用JSON.parse()来转化会报错,因为使用JSON.parse需严格遵守JSON规范。
2.单引号与双引号
var str = ‘{“name”:”小明”,”age”:18}’; 使用单引号来套双引号,如果反过来写呢,如:var str = “{‘name’:’小明’, ‘age’:18}”;(相信也不少人习惯用双引号套单引号)
结果使用JSON.parse()来转化也会报错
最后总结来说,如果使用JSON.parse()方法来转化成json对象的数据格式的话,需要注意的是被转化的字符串里面的属性要使用引号,并且总体是单引号套双引号的方式。