转自:http://blog.csdn.net/yaerfeng/article/details/7103397 今天项目中遇到了一个问题,要调用一个类,并获取这个类的属性进行赋值然后将这个类传递到方法中做为参数. 实际操作时才发现,这个类中的字段属性是私有的,不能进行赋值!没有提供公有的方法.而这个类又是打包成jar给我的,我还不能更改它的代码,以至于想手动给它写个set方法都是问题.后来想到用反射可以解决这个问题,于是试了一下,果然! 反射看来根本不区分是否是private的,调用本身的私有…
今天项目中遇到了一个问题,要调用一个类,并获取这个类的属性进行赋值然后将这个类传递到方法中做为参数. 实际操作时才发现,这个类中的字段属性是私有的,不能进行赋值!没有提供公有的方法.而这个类又是打包成jar给我的,我还不能更改它的代码,以至于想手动给它写个set方法都是问题.后来想到用反射可以解决这个问题,于是试了一下,果然! 反射看来根本不区分是否是private的,调用本身的私有方法是可以的,但是调用父类的私有方法则不行,纠其原因很有可能是因为getDeclaredMethod方法和getM…
Java高级语法之反射 什么是反射 java.lang包提供java语言程序设计的基础类,在lang包下存在一个子包:reflect,与反射相关的APIs均在此处: 官方对reflect包的介绍如下: Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, metho…
java的Object类: 1.Object 类位于 java.lang 包中,编译时会自动导入:Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法. 2.Object 类可以显示继承,也可以隐式继承 显示继承: public class Runoob extends Object{ } 隐式继承: public class Runoob{ } Object():构造一个新对象. 案例: """ package Demo2; /* * 需求:写一…
老规矩我们还是先提出几个问题,一门技术必然要能解决一定的问题,才有去学习掌握它的价值 一. 什么是反射? 二.反射能做什么? 一. 什么是反射? 用在Java身上指的是我们可以于运行时加载.探知.使用编译期间完全未知的classes.换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体.或对其fields设值.或唤起其methods. 如果你是一个Android Developer,前辈们都会教导你尽量少用反射,效率太低,…
老规矩我们还是先提出几个问题,一门技术必然要能解决一定的问题,才有去学习掌握它的价值 一. 什么是反射? 二.反射能做什么? 一. 什么是反射? 用在Java身上指的是我们可以于运行时加载.探知.使用编译期间完全未知的classes.换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体.或对其fields设值.或唤起其methods. 如果你是一个Android Developer,前辈们都会教导你尽量少用反射,效率太低,…
转载:https://blog.csdn.net/yhl_jxy/article/details/80635012 前言 JDK动态代理实现原理(jdk8):https://blog.csdn.net/yhl_jxy/article/details/80586785 CGLIB动态代理实现原理:https://blog.csdn.net/yhl_jxy/article/details/80633194 一 JDK和CGLIB动态代理原理 1.JDK动态代理 利用拦截器(拦截器必须实现Invoca…
事件类 java.util.EventObject java.beans.PropertyChangeEvent 事件监听接口 java.util.EventListener java.beans.PropertyChangeListener…
原文链接 数据源 通过jdbc连接数据库,多建立几条连接放在数据源里面.可以设置数据源的最大连接数,同时活跃的连接数,最少空闲的连接数,能够同时接收处理的连接数等等. dbcp数据源 需要的jar包: commons-dbcp.jar; commons-pool.jar mysql-connector-java.jar 前两个jar包到阿帕奇官网下载.第三个jar包到mysql官网下载. 他是对jdbc的封装.底层还是要通过jdbc连接数据库的.实现了java.sql.DataSource接口的…
数据源:通过jdbc连接数据库,多建立几条连接放在数据源里面.可以设置数据源的最大连接数,同时活跃的连接数,最少空闲的连接数,能够同时接收处理的连接数等等. dbcp数据源 需要的jar包: commons-dbcp.jar; commons-pool.jar mysql-connector-java.jar 前两个jar包到阿帕奇官网下载.第三个jar包到mysql官网下载. 他是对jdbc的封装.底层还是要通过jdbc连接数据库的.实现了java.sql.DataSource接口的类有Bas…
反射的定义 MSDN定义:反射提供描述程序集.模块和类型的对象(Type类型). 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用其方法或访问器字段和属性. 如果代码中使用了特性,可以利用反射来访问它们. 一共三句话. 第一句意思是可以利用反射提供的API来获取程序集信息,包括其下的模块.Type类型信息: 第二句意思通过反射,先拿到这个程序集->Module->Type的类型信息,然后调用实例化的API Activator.CreateInstance…
1. boolean a= b==null;这句话很亮. public class Test { public static void main(String[] args) { String b="aaaa"; boolean a= b==null; a=b==null?true:false; System.out.println(a); } }…
1,javaBean如下: public class User {        /**     * 用户唯一标识(ID)     */    private String uid;    /**     * 用户名(user既手机号)     */    private String phone;    /**     * 获取用户唯一标识(ID)     *      * @return 用户唯一标识(ID)     */    public String getUid() {      …
public class Person { public String name; public char sex; private int age; public String getName() { return name; } public char getSex() { return sex; } public int getAge() { return age; } public void setName(String name) { this.name = name; } publi…
当你已经熟练的掌握了面向对象中的各种概念后,是否会对这些知识是如何使用的产生浓厚的兴趣?本课程主要针对于已经掌握了JAVA核心开发技术的读者准备,讲解了JAVA多线程.常用类库.IO编程.网络编程.类集框架.JDBC等与Java实际应用有关的开发技术. Java高级编程更多内容和免费课程:阿里云大学—开发者课堂 什么是多线程? 线程:就是进程中的一个独立控制单元,线程在控制着进程的执行. 多线程:一个进程中不只有一个线程. 多线程的优点: 1 可以更好的利用cpu的资源: 2 进程之间不能共享数…
许多以Java多线程开发为主题的技术书籍,都会把对Java虚拟机和Java内存模型的讲解,作为讲授Java并发编程开发的主要内容,有的还深入到计算机系统的内存.CPU.缓存等予以说明.实际上,在实际的Java开发工作中,仅仅了解并发编程的创建.启动.管理和通信等基本知识还是不够的.一方面,如果要开发出高效.安全的并发程序,就必须深入Java内存模型和Java虚拟机的工作原理,从底层了解并发编程的实质:更进一步地,在现今大数据的时代,要开发出高并发.高可用.考可靠的分布式应用及各种中间件,更需要深…
英文原文:http://www.programcreek.com/2013/08/top-books-for-advanced-level-java-developers/ java语言是当今最受欢迎的编程语言之一.对于初学者来说,有许多有关这样的书籍.但是对于有一些java编程经验的程序员来说,其中有些书过于简单,有些又是过于繁琐.所以这些入门书籍并不会带来新鲜感,激发一些有意思的灵感.然而,java编程的高级书籍并不是很容易写出来的,并不是因为写这些书需要多少技术,多少经验,而是这些是要内功…
Java 核心编程API与高级编程实践 第一章 异常 1.1 异常概述 在程序运行中,经常会出现一些意外情况,这些意外会导致程序出错或者崩溃而影响程序的正常执行,在java语言中,将这些程序意外称为异常,出现异常时称为异常处理. 1.2 异常引入 public class TestEx { public static void main(String[] args){ String teachers[] ={"柳海龙","孙传杰","孙悦"};…
一.序列化 1.序列化概述 在实际开发中,经常需要将对象的信息保存到磁盘中便于检索,但通过前面输入输出流的方法逐一对对象的属性信息进行操作,很繁琐并容易出错,而序列化提供了轻松解决这个问题的快捷方法. 简单地说,序列化就是将对象的状态存储到特定存储介质中的过程,也就是将对象状态转换为可保持或传输格式的过程,在序列化过程中,会将对象的共有成员.私有成员包括雷明,转换为字节流,然后再把字节流写入数据流,存储到存储介质中,这里说的存储介质通常指的是文件. 使用序列化的意义在于,将对象序列化后,可以将其…
Java 高级基础--反射 反射的意义:Java 强类型语言,但是我们在运行时有了解.修改信息的需求,包括类信息.成员信息以及数组信息. 基本类型与引用类型 基本类型,(固定的 8 种) 整数:byte, short, int, long 小数:float, double 字符:char 布尔值:boolean 引用类型 所有的引用类型都继承自 java.lang.Object 类,枚举,数组,接口都是引用类型 java.io.Serializable 接口,基本类型的包装类(比如 java.l…
慕课网<反射——Java高级开发必须懂的>听课笔记 一.class类的使用 class ClassDemo { public static void main(String[] args) { //Foo的对象怎么表示? Foo foo1 = new Foo();//foo1就表示出来了 //Foo这个类是Class类的实例对象,只有java的虚拟机能创建它的实例对象 //任何一个类都是 Class的实例对象,这个实例对象有三种表示方式: //(1).类名.class 任何一个类都有一个隐含的…
Java并发编程--基础进阶高级完整笔记. 这都不知道是第几次刷狂神的JUC并发编程了,从第一次的迷茫到现在比较清晰,算是个大进步了,之前JUC笔记不见了,重新做一套笔记. 参考链接:https://www.bilibili.com/video/BV1B7411L7tE 目录 1.多线程--基础内容 1.Thread状态 2.Synchronized 3.Lock锁 4.总结 2.八锁现象(synchronized.static) 1.synchronized 2.static synchron…
引言 自从JDK5以后,Java Class类增加了泛型功能,从而允许使用泛型来限制Class类,例如,String.class的类型实际上是 Class 如果 Class 对应的类暂时未知,则使 Class<?>.通过在反射中使用泛型,可以避免使用反射生成的对象需要强制类型转换. 泛型作用对比: 如下示例没有使用泛型时,编译不报错,运行时报错强制转换异常 public class HasNoFanxin { public static Object newInstance(String cl…
在Java高级特性——反射机制(第一篇)中,写了很多反射的实例,可能对于Class的了解还是有点迷糊,那么我们试着从内存角度去分析一下. Java内存 从上图可以看出,Java将内存分为堆.栈.方法区,其中方法区是一种特殊的堆. 堆:堆中通常存放new的对象和数组,可以被所有的线程共享,不会存放别的对象引用. 栈:存放基本的变量类型(会包含这个基本类型的具体数值)以及引用对象的变量(会存放这个引用在堆里边的具体地址). 方法区:可以被所有的线程共享,包含了所有的class和static变量.‘…
感谢原文作者:peter_RD_nj 原文链接:https://www.jianshu.com/p/9be58ee20dee 注意:同一个类在JVM中只存在一份字节码对象 概述 定义 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. 用途 在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量.方法或是属性是私有的或是只对系统应用开放,这时…
C++能不能支持Java和ObjC的反射? 要回答这个问题.首先我们要清楚什么是反射.什么是反射? 教科书的解释我就不说了,(^o^)事实上我也记不得.实际开发应用的反射就是在没有某个类型的头文件或者类结构定义的情况下,存取这个类型的对象的成员字段的值.调用这个对象的成员函数(方法). 比方我有定义了一个类型 Class  A,里面有 a,b,c三个字段,有fun()函数. 如今我手里仅仅有一个 void* pA,注意它的类型仅仅是一个void指针,我手里也没有Class的头文件.我要怎么样得到…
1.如何创建Class的实例 1.1过程:源文件经过编译(javac.exe)以后,得到一个或者多个.class文件..class文件经过运行(java.exe)这步,就需要进行类的加载(通过JVM的类的加载器),加载到内存中的缓存.每个放入缓存中的.class文件就是Class的实例. 1.2 Class的一个对象,对应着一个运行时类.相当于一个运行时类本身充当了一个Class的一个实例. 1.3 java.lang.Class是反射的源头.接下来涉及到反射的类都在java.lang.refl…
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大家.对于这次跳槽找工作, 我准备了挺长的时间, 其中也收集了很多比较好的笔试面试题, 大都是一些常用的基础, 很多都是由于时间原因没有来得及给出答案, 但是题目大都是比较经典实用的, 现在都放到这里, 希望对正处于找工作的博友有一定的帮助. 第一部分: Java基础(此部分面试题题目来自:http:…
原文:http://www.cnblogs.com/wang-meng/p/5898837.html 一:继承.抽象类与接口区别.访问控制(private, public, protected,默认).多态相关!1.interface和 abstract class的区别interface是接口,abstract class是抽象类.1,语法层次抽象类中可以拥有任意范围的成员数据,可以定义非抽象方法.而接口中只能拥有静态的不能修改的成员数据,同时所有的方法必须是抽象的.所以说接口是抽象类的一种特…
前言 本篇我们继续讲解本章其余的部分:构造函数.只读字段.匿名类型.结构详解.部分类.静态类.Object类.扩展方法,等. 01 类 构造函数 构造函数是一种特殊的方法: 与类同名 没有返回值,甚至不能写void(但可以写修饰符public,private,protected) 未指定构造函数时,编译器会自动创建默认构造函数:一旦手工创建了构造函数,编译器就不会再创建默认构造函数 构造函数可重载,同方法一样 静态构造函数:构造函数加static关键字:它只执行一次,一般用于初始化静态字段或者属…