一.Refection定义 1.概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法. 2.功能 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的成员变量和方法 生成动态代理 3.反射相关的主要API java.lang.Class:代表一个类java.lang.reflect.Metho…
一.缓冲流(处理流的一种) 1.作用:可以提高文件操作的效率 2.使用BufferedInputStream和BufferedOutputStream实现非文本文件的复制 特点:flush()方法 代码示例: BufferedOutputStream bos = null; BufferedInputStream bis = null; try{ //1.提供读入.写入的文件 File file1 = new File("awsl.jpg"); File file2 = new Fil…
一.Java动态代理 1.代理设计模式的原理 使用一个代理将对象包装起来, 然后用该代理对象取代原始对象. 任何对原始对象的调用都要通过代理. 代理对象决定是否以及何时将方法调用转到原始对象上. 2.静态代理 特征是代理类和目标对象的类都是在编译期间确定下来,不利于程序的扩展.同时,每一个代理类只能为一个接口服务,这样一来程序开发中必然产生过多的代理. 3.动态代理 动态代理是指客户通过代理类来调用其它对象的方法,并且是在程序运行时根据需要动态创建目标类的代理对象. 4.代码示例 静态代理代码:…
一.String类 1.特点 String代表不可变的字符序列,底层用char[]存放. String是final的. 2.内存解析 3.常用方法 int length() char charAt(int index):返回指定位置的字符 boolean equals(Object obj):比较字符串的内容是否相等 int compareTo(String anotherString):对字符串内容按字典顺序进行大小比较,当前对象比参数大返回正整数,反之返回负整数,相等返回0. int ind…
一.线程的特点 1.线程的分类 java中的线程分为两类:守护线程和用户线程.唯一的区别是判断JVM何时离开. 守护线程是用来服务用户线程的,通过在start()方法前调用Thread.setDaemon(true)可以把一个用户线程变成一个守护线程. java垃圾回收就是一个典型的守护线程:若JVM中都是守护线程,当前JVM将退出. 2.线程的生命周期 3.线程的同步机制 (1)线程的安全问题 在上一篇随笔中,多窗口售票的程序代码存在线程的安全问题,打印车票会出现重票.错票. 安全问题存在的原…
一.枚举类 1.概述:即一个类中只能有有限个对象,若只有一个对象,则可以作为单例模式的一种实现. 2.自定义枚举类(JDK1.5以前这么做) //枚举类 class Season{ //1.提供类的属性,声明为private final private final String seasonName; private final String seasonDesc; //2.声明为final的属性,在私有构造器中初始化 private Season(String seasonName,Strin…
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean          byte——Byte short——Short                   int——Integer long——Long                    char——Character float——Float                     double——Double 2.作用:有了类的特点,…
一.JavaBean——可重用组件 1.JavaBean是指符合以下标准的Java类: (1)类是公共的 (2)有一个无参的公共的构造器 (3)有属性,且有对应的get.set方法 2.好处 用户可以使用JavaBean将功能.处理.值.数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面.Servlet.其他JavaBean.applet程序或者应用来使用这些对象.用户可以认为JavaBean提供了一个随时随地的复制和黏贴的功能,而不能关心任何改变…
一.流程控制语句补充 1.switch语句 格式: switch(表达式) { case 值1: 语句体1; break; case 值2: 语句体2; break; ... default: 语句体n+1; break; } 注意事项: 表达式:这个地方的取值是有限定的 byte,short,int,char JDK5以后可以是枚举 JDK7以后可以是字符串 面试题: switch语句的表达式可以是byte吗?可以是long吗?可以是String吗? 可以是byte,long不行,jdk7以后…
一.IP地址和端口号 1.作用 通过IP地址,唯一的定位互联网上一台主机. 端口号标识正在计算机上运行的进程,不同进程有不同的端口号,被规定为一个16位的整数0~65535,其中0~1023被预先定义的服务通信占用. 端口号和IP地址的组合得出一个网络套接字(socket). 2.InetAddress类 位于java.net包下,用来代表IP地址,一个InetAddress的对象就代表着一个IP地址. import java.net.InetAddress; import java.net.U…