高新技术

来源:互联网 发布:怎么推广淘宝店铺 编辑:程序博客网 时间:2024/04/27 19:41


1、创建数组并赋初值

new String[]{"acb","adc","aaa"}


2、数组的反射

            具有相同维数和数据类型的数组,属于同一个类型,拥有相同的Class实例对象

           int[] a1=new int[4];
          int a2[] =new int[3];
         //判断俩个int类型的一维数组的字节码是否相同
         System.out.println(a1.getClass()==a2.getClass());

           返回结果为TRUE


3、反射中的invoke(Object obj,args...arg) 方法:

当第一个参数为null时,表示该方法为静态方法 


4、hashcode()方法的作用:

提高从集合中查找元素的效率。这种方式将集合分成若干个存储区域对象,每个对象可 以计算出一个哈希码,将哈希码分组,每组分别对应某个存储区域,根据该对象的哈希 码就可以确定该对象存储在哪个区域,然后再在这个区域去查找。

 

5、java中的内存泄露:

当一个对象不再被使用,却没有被垃圾回收机制释放时,就会造成内存泄露

 

6、HashSet

HashSet是采用hashcode()算法存取对象的集合,它内部都是采用对某个数字N进行取 余的方式将哈希码进行分组和划分对象的存储区域

 

7hashcode()导致内存泄露

当一个对象被存储进HashSet集合后,就不能再修改这个对象中的参与计算哈希值的字 段了(对象的属性值)。否则,对象修改后的哈希值与最初存储进HashSet集合中的哈 希值就不同了,在这种情况下,使用该对象的当前引用去HashSet集合中检索,将找不 到结果,这将导致无法从HashSet中删除该对象,从而造成内存泄露。

 

8、JavaBean

(1)JavaBean是特俗的java

(2)Int getAge(){}    void setAge(){},有以上代码规范的java类为JavaBean类,JavaBean 类的属性是根据方法的名称来获取的,去掉方法的setget后,剩下的就是JavaBean 的属性(如果方法的第二个字母是大写,去掉setget后将其变小写)

 

9、BeanUtils工具:

BeanUtils工具操作JavaBean中的getset方法来获取、设置其中的属性非常的方便

 

10、BeanUtilsPropertyUtils的区别:

BeanUtils是通过字符串来操作JavaBean中的属性,而PropertyUtils是通过属性原本的 类型来操作的

 

11、Anatation(注解)

(1)系统内建的三个Annotation类型:@Override(覆写)、@Deprecated(不赞成使用的)、@SuppressWarnnings(压制安全警告的)

(2)自定义的Annatation格式:@interface A {}

 

12类的加载器:

(1)作用:将.class文件的内容加载到硬盘中,再对其进行一些处理,处理完的结果就是字    节码

(2)Class类的getResourceAsStream(相对路径)、getResourceAsStream(绝对路径)

(3)java虚拟机中可以安卓多个类加载器,系统默认三个主要类加载器,每个类加载也是java类,因为加载器也要被类加载器加载,所以第一个java类加载器不是java类,

     这就是BootStart(用C++写的一段二进制代码)类


13、类加载器的委托机制:

每个类加载器加载类时,又先委托给其上级类加载器,当所有父类没有加载到类时,回到发起者类加载,发起者还是加载不了时,则抛出ClassNotFoundException异常


14、编写加载类的原理:

(1)自定义的类加载器必须继承ClassLoader类

(2)覆写父类中的findClass()方法


15、类加载器加密文件的方法:

加密时用一个简单的算法,将文件的输入流转换,然后将加密后的输出流保存到另一个文件中,呈现给用户的就是加密后的文件




16、StringBuffer与StringBuilder类的区别:

俩者在应用之中都差不多,都是动态的往类中添加对象。在单线程的情况下,StringBuilder的效率要高点,在多线程的情况下,StringBuffer的效率要高点。因为

StringBuilder不是被共享的类,线程安全;StringBuffer是被共享的类,要考虑线程安全。







0 0
原创粉丝点击