构造器

封装

橙三吉。 提交于 2020-01-13 21:20:49
1.概念:将类的内部细节隐藏起来,对外提供可访问的接口。 2.如何实现封装? step1:将成员属性声明为私有 step2:增加setxx()和getxx()方法(这两个方法就类似于文件的读写属性) 3.this关键字 –用来区分成员变量和局部变量 –代表当前对象 4.构造器 ①构建对象 ②初始化成员属性 ③与类同名,无返回值 ④构造器可以形成重载 ⑤所有的类都有构造器 ⑥当类中没有显示的构造器时,其实是存在一个隐藏的无参构造器 ⑦当类中有显示的构造器时,会把隐藏的构造器覆盖 来源: CSDN 作者: TD_eggman 链接: https://blog.csdn.net/qq_43246987/article/details/103963033

封装

拜拜、爱过 提交于 2020-01-13 21:04:27
1、概念 将类的内部细节隐藏起来,对外可以提供访问的接口。 2、如何封装? 1、将成员属性声明为私有 2、增加setXXX()和getXXX()方法 3、this关键字 区分成员变量和局部变量 代表当前对象 4、构造器 1、构建对象 2、初始化成员属性 3、与类同名,无返回值 4、可以重载 5、所有的类都有构造器 6、当类中没有显示的构造器时,其实是存在一个隐藏的无参构造器 7、当类中有显示的构造器时,会把隐藏的构造器覆盖 来源: CSDN 作者: 音离-命 链接: https://blog.csdn.net/qq_36623595/article/details/103963572

Reflection 反射

主宰稳场 提交于 2020-01-13 12:55:20
目录 Reflection 反射 反射的定义 反射的作用 Class类 Class类的对象获取 Class API 反射操作泛型 反射操作注解 反射的性能问题 Reflection 反射 反射的定义 反射机制: 在程序运行时可以加载,探知,使用编译期间完全未知的类 程序在运行状态中,可以动态加载一个只有名称的类,对于任意一个加载的类,都能够知道这个类的所有属性和方法;同时任意一个对象也都能够调用它的任意一个方法和属性。同时一个类只有一个反射对象,比如多次调用Class.forName得到的也是相同对象 形象的说: 使用以下反射代码来获取一个类的对象 Class c = Class.forName("com.company.project.ClassName"); 当加载完成后,堆内存中就产生了一个ClassName类型的对象,通过这个对象我们就可以看到类的结构,这个就时反射 反射的作用 动态加载类、动态获取类的信息(属性、方法、构造器) 动态构造对象 动态调用类和对象的任意方法、构造器 动态调用和处理属性 获取泛型信息 处理注解 Class类 public final class Class extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement

方法引用、构造器引用和数组引用

不打扰是莪最后的温柔 提交于 2020-01-13 03:54:59
方法引用 若 Lambda 体中的内有方法已经实现了,我们可以使用“方法引用”(可以理解为方法引用是 Lambda 表达式的另外一种表现形式) 语法格式 主要有以下三种语法格式: 对象::实例方法名 注意: 实例的方法要与函数式接口的抽象方法的形式一样 --> 返回值的类型和参数列表一致 代码示例 1 // 例如: Consumer < String > comsumer = ( str ) - > System . out . println ( str ) ; // 可以使用下面的方式代替: PrintStream ps = System . out ; Consumer < String > consumer2 = ps : : println ; 代码示例 2 public class Employee { private String name ; public void setName ( String name ) { this . name = name ; } public String getName ( ) { return this . name ; } } Employee emp = new Employee ( ) ; emp . setName ( "Gldwolf" ) ; Supplier < String > supplier = emp :

《熬夜吐血整理》近100道spring全家桶系列面试题整理【已完结!附答案文档】

社会主义新天地 提交于 2020-01-13 03:52:02
Spring 系列面试题整合 大家好,俺依旧是智慧与帅气并存的小木,今天给大家带来的是spring系列面试题完结篇 前言 终于!!! 功夫不负有心,历经3天时间 【加上熬夜四舍五入6天 [手动滑稽]】,小木这边把spring系列的面试题已经整理完毕了,得到了很多大佬的好评,我也是心生欢喜呀 同时也希望各位得到各位的支持,帮我点点赞好评一下是对我最大的支持 最近几天有很多朋友跟我聊到年后准备换工作跳槽,所以最近一段时间小木还是会照常更新面试知识点系列,这里已经把java岗位一写核心的知识点整理成了文档,希望大家加油!! 关于java核心知识点文档分享给大家 注:面试文档领取看文末 上上篇 — spring系列面试题整理题卡(1) 上篇 — spring boot,spring Cloud知识点整理(2) sping系列面试题展示 1、什么是spring? 2、使用Spring框架的好处是什么? 3、Spring由哪些模块组成? 4、核心容器(应用上下文) 模块 5、 BeanFactory – BeanFactory 实现举例 6、XMLBeanFactory 7、解释AOP模块 8、解释JDBC抽象和DAO模块 9、 解释对象/关系映射集成模块 10、解释WEB 模块 11、Spring配置文件 12、什么是Spring IOC 容器? 13、 IOC的优点是什么? 14、

Android的架构主体演变

一世执手 提交于 2020-01-12 15:20:01
Android的架构主体演变 在过去Android一直在MVC、MVP中探索。在2019基本没有谁再去纠结这两个架构了,因为Android的Jetpack提供了MVVM架构,说到MVVM架构我第一时间想到刚刚毕业的时候,在WPF的window开发中使用到MVVM的数据绑定。如果你是一个初学者我的建议是直接忽略MVP架构,直接入门MVC,开发MVVM。 最佳架构 对于MVVM,google提供了Jetpack组件。成为Android最佳架构实践。可以通过以下网址学习和探索:https://developer.android.com/jetpack 。Jetpack组件已经植入了Android的SDK,从这一点可以看出最佳架构不是徒有空名的,那些还在观念意识上不接受的就快点转换思维吧。 学习Jetpack中的设计思想 公司的主体Android架构已经切换到了MVVM结构了,而且App运行良好,优势也渐渐凸显。在这里我和大家分享一下我眼中的Jetpack组件值得学习的切入点主要有两点:构建对象管理器、数据绑定。 构建对象管理器 对于对象的生成和销毁的管理一直以来都是各大架构的一个主题功能。归根结底就是一个工厂模式,在Jetpack中我们也看到这个设计模式的应用,在ViewModelProviders和RepositoryProviders。先不看这个两个类的实现

Java反射机制

一笑奈何 提交于 2020-01-11 23:28:18
一、什么是反射? 在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有),这种动态获取的信息,及调用对象的方法的功能就称为Java的反射机制。 二、获取类对象 1、什么是类对象?   创建Dog类和Cat类 public class Dog { private String name; private int age; public Dog() { } public Dog(String name, int age) { this.name = name; this.age = age; } /*getter and setter*/ } public class Cat { private String name; private String hobby; /*getter and setter*/ }   实例化两个Dog类的对象 Dog dog1 = new Dog("大黄", 5); Dog dog2 = new Dog("小黑", 3); 在理解类对象之前,先说我们熟悉的对象之间的区别: dog1和dog2都是 Dog对象 ,他们的区别在于,各自有 不同的名称、年龄 。 然后说说类之间的区别   Dog和Cat都是类,他们的区别在于有 不同的方法,不同的属性 。 类对象

Java反射常见面试题

社会主义新天地 提交于 2020-01-11 08:59:49
Java反射常见面试题 什么是反射? 反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。 哪里用到反射机制? JDBC中,利用反射动态加载了数据库驱动程序。 Web服务器中利用反射调用了Sevlet的服务方法。 Eclispe等开发工具利用反射动态刨析对象的类型与结构,动态提示对象的属性和方法。 很多框架都用到反射机制,注入属性,调用方法,如Spring。 什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作? 对象序列化,将对象中的数据编码为字节序列的过程。 反序列化;将对象的编码字节重新反向解码为对象的过程。 JAVA提供了API实现了对象的序列化和反序列化的功能,使用这些API时需要遵守如下约定: 被序列化的对象类型需要实现序列化接口,此接口是标志接口,没有声明任何的抽象方法,JAVA编译器识别这个接口,自动的为这个类添加序列化和反序列化方法。 为了保持序列化过程的稳定,建议在类中添加序列化版本号。 不想让字段放在硬盘上就加transient 以下情况需要使用 Java 序列化: 想把的内存中的对象状态保存到一个文件中或者数据库中时候; 想用套接字在网络上传送对象的时候; 想通过RMI(远程方法调用)传输对象的时候。

反射机制

瘦欲@ 提交于 2020-01-10 14:59:33
1 反射的概述 1.1 什么是反射 每个.class文件被加载到内存后都是一个Class类的对象!例如Demo.class加载到内存后它是Class<Demo>类型的一个对象。 反射就是通过Class对象获取类型相关的信息。一个Class对象就表示一个.class文件,可以通过Class对象获取这个类的构造器、方法,以及成员变量等。 反射是Java的高级特性,在框架中大量被使用!我们必须要了解反射,不然无法学好JavaWeb相关的知识! 1.2 反射相关类 与反射相关的类: l Class:表示类; l Field:表示成员变量; l Method:表示方法; l Constructor:表示构造器。 2 Class类 2.1 获取Class类 获取Class类的三种基本方式: l 通过类名称.class,对基本类型也支持; Class c = int.class; Class c = int[].class; Class c = String.class l 通过对象.getClass()方法 Class c = obj.getClass(); l Class.forName()通过类名称加载类,这种方法只要有类名称就可以得到Class; Class c = Class.forName(“cn.itcast.Demo”); 2.2 Class类的常用方法 l String

Java反射机制介绍

♀尐吖头ヾ 提交于 2020-01-10 01:54:14
1. 文档概述 Java反射是Java被视为动态(或准动态)语言的一个关键性质,Java反射机制容许程序在运行时加载、探知、使用编译期间完全未知的classes。换言之,Java可以加载一个运行时才得知名称的class,获得其完整结构。 在工作过程中,常会听到反射这个概念,在平常的代码开发中也有看到和使用到,只是对它没有一个较深入的了解,这次重新理解学习了一下反射机制,结合公司产品中的Hotweb框架,加深理解,本文为学习过程中的总结。 2. 目标读者 数通畅联内部员工 广大计算机爱好者 3. 术语解释 静态加载类 (编译时加载类):大多数情况下都是使用这种形式。比如我们定义了一个类A,实例化采用A a = new A()接着就可以通过a对象调用相关方法或属性,这就是静态加载类的过程。 动态加载类 (运行时加载类):所谓动态加载类,只需要通过Class c = Class.forName("类的全名")即可获得类类型,然后通过调用A a = c.newInstance()方法即可实例化这个类。 本质的区别在于静态加载的类的源程序在编译时期加载(必须存在),而动态加载的类在编译时期可以缺席(源程序不必存在)。 反射机制 :在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性