java
李煊
这个作者很懒,什么都没留下…
展开
-
查看类信息(反射的基础)
当无法确定调用哪一个子类(子类名作为参数传递)的某一个方法时,也许会用到反射。反射可以获取到类的所有信息。反射的思路:通过类加载器加载类,类被加载后就会创建一个该类的类对象在内存中,获取到这个类对象就可以调用方法获得类信息了(类对象与实例对象不一样)。获取类对象的方法有三种:1.Class.forName("完整包名"):Class.forName(“pacage.A”)。需要捕捉...原创 2019-03-04 21:57:00 · 255 阅读 · 0 评论 -
java date转格式
二、SimpleDateFormatjava.text.SimpleDateFormat定义了以下模式字母(所有其他字符'A'到'Z'和'a'到'z'都被保留):字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996;96 M 年中的月份 Mon...转载 2019-05-16 14:04:28 · 1451 阅读 · 0 评论 -
修改项目名
原创 2019-05-04 15:23:16 · 201 阅读 · 0 评论 -
抽象类、接口
抽象类抽象类abstract :关键词可以修改类,可以修饰方法。抽象方法没有方法体。抽象类可以被继承构造器方法不能被定义为抽象方法抽象类可以有类的所有属性,方法。抽象类可以没有抽象方法。没有抽象的静态方法,因为静态方法不能为空,被类调用。接口类:接口类只能有抽象方法。不能拥有引用变量,属性只能有常量,可以有内部类、内部接口类、枚举类。接口中的属性的默认...原创 2019-03-13 20:23:23 · 79 阅读 · 0 评论 -
final 修改变量,方法,类
1.修饰变量该变量只能被初始化一次,以后无法修改。成员变量:静态成员变量只能在静态出初始化块、声明该属性时初始化实例成员变量:非静态初始化块、声明该属性、构造器中初始化原因:若不初始化系统会自动初始化局部变量:可以先声明,后初始化。局部变量的声明系统不会默认初始化。引用型变量:只要变量的引用地址不变即可,引用地址里的对象还会可以变化的。2.修饰方法:方法...原创 2019-03-13 15:25:17 · 964 阅读 · 0 评论 -
classload
类加载器分为4类:根类加载器(Bootstrap ClassLoader):加载jre中的String等,java核心类,了解即可。扩展类加载器(Extension ClassLoader):加载JAVA_HOME/jre/lib/ext下的jar包。自己写的jar包可以放在下面就可以被加载。系统类加载器(System ClassLoader):应用加载类,通过java命令加载类,...原创 2019-03-04 21:24:34 · 272 阅读 · 0 评论 -
线程同步
第一种方式:关键字synchronized:可用在代码块和方法中,用在代码块需要有(锁对象):什么情况下会释放同步监视器的锁定:1.程序执行完毕2.遇到return,break3.报错或异常4.调用了wait(),wait是object的方法,因此所有对象均可调用。调用wait会暂停线程使线程进入阻塞状态,等待唤醒notify();注意:wait只有在对象获取到同...原创 2019-03-07 11:19:14 · 142 阅读 · 0 评论 -
【Java学习笔记】Instance Variables,Class Variables,local Variables的区别
Class Variables :类变量,静态变量Instance Variables:实例变量,非静态变量,位于类中,方法体外local Variables:局部变量,位于方法体内,必须定义初始化值。类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。...转载 2019-03-14 12:54:30 · 564 阅读 · 0 评论 -
java存储机制,堆,栈,方法区
1.个人理解java存放数据的地方有3个:堆(heap)、栈(steak)、方法区(method)堆:存放对象实例的地方栈:存放基础类型对象和对象引用的地方,且一个线程有一个独立的线程栈,线程之间数据不共享。栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)方法区:存储静态变量、加载类信息,所有只执行加载一次的信息都在方法区中存储。与堆一样被所有线程共享。...转载 2019-03-04 15:37:53 · 219 阅读 · 0 评论 -
java基础-初始化块
加了static就是静态初始化块。静态初始化块只能调用静态资源。没有加static修饰符的就是普通初始化代码块。new一个实力对象时,先执行初始化块,在执行构造函数。静态只在加载类的时候执行一次,普通代码块在new对象时每次都会调用。补充知识点:1.new一个对象时会先加载类信息,类信息加载后在创建实例对象,后面创建实例对象不会在加载类,所以静态资源只执行一次。2. 一个有...原创 2019-03-03 21:51:25 · 119 阅读 · 0 评论 -
线程生命周期
线程有五种状态:创建:被new出来就绪:调用start方法运行:获得资源运行阻塞:调用sleep资源主动放弃资源,进入阻塞状态;调用阻塞io方法进入阻塞状态;试图获取同步监视器,但是该监视器被占用;线 程正在等待通知(notify)死亡:run执行完毕或出现异常或错误;或调用stop()方法线程进入阻塞的几种情况:1.调用sleep方法,主动放弃...原创 2019-03-06 14:10:34 · 100 阅读 · 0 评论 -
线程-创建
1.概念:进程:进程是处于运行过程中的程序,并且具有一定独立功能,进程是系统进行资源和调度的基本单位。线程:线程是进程的执行单元。并发性:同一时刻只有一条指令执行,但是多个进程指令快速轮换执行。并行性:同一时刻有多条指令在多个处理器上同时执行;进程与线程的区别:地址空间:同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。 资源拥有:同一进程内的线程共...原创 2019-03-05 21:46:35 · 163 阅读 · 0 评论 -
动态代理Proxy
动态代理:个人理解,通过第三方创建你想要的对象,由第三方管理你的对象。且你想执行对象的方法,也会有一个类似于(真正方法执行前和后都有)拦截器的功能,在执行你需要调用的方法的前后做一些操作。需要理解两个类:Proxy:可以理解为第三方,相当于把你想创建的类的外面进行了一个封装,你想创建一个类的实例对象,你告诉Proxy一些类的信息:这个类实现了哪些接口(数组对象),被代理的对象一定要实现某一...原创 2019-03-05 16:29:19 · 474 阅读 · 0 评论 -
反射设置属性
通过反射设置属性,思路:获取class对象a;通过a创建实例对象b,获取属性c;c.setAccessible(true),设为可操作,可以操作私有属性;c.setXXX(target,value):target被修改属性的实例对象,set后的XXX为8种基础类型,若属性为引用对象则去掉XXX。获取属性值:1,2同上c.getXXX(target);...原创 2019-03-05 14:25:01 · 2410 阅读 · 0 评论 -
反射-创建对象-调用方法
通过反射创建对象的思路:1.首次获取类的类对象,获取方式看前一篇博客。2.调用类对象的newInstance()方法创建该类的实体对象。这是调用的类的默认构造器。若想调用非默认的构造器创建实例对象,需要先通过class对象获取构造器,在用构造器调用newInstance()方法创建。例子:创建一个对象池,读取property文件,创建对象,spring依赖注入的基本原理也是这样实现...原创 2019-03-05 14:11:12 · 1283 阅读 · 0 评论 -
request获取信息
1.通过request获得请求行获得客户端的请求方式:String getMethod()获得请求的资源:String getRequestURI() StringBuffer getRequestURL()String getContextPath() ---web应用的名称String getQueryString() ---- get提交url地址后的参数字符串...原创 2019-05-13 11:19:14 · 801 阅读 · 0 评论