构造方法

Java连载53-单例模式初步、final关键字补充、回顾知识点

被刻印的时光 ゝ 提交于 2019-12-05 15:45:52
一、回顾 1.类和对象的区别 2.UML(uniform makeup language) 3.方法区存储静态变量、常量(static final修饰) 4.堆内存中存储对象 5.栈存储变量 6.this()可用于构造方法第一行 7.static静态语句块(JVM中第一次使用类的时候,会进行加载静态语句块),还可以修饰变量和方法 8.设计模式是可以重复利用的解决方案可以分为四类 9.类的继承(单继承) 10.方法覆盖(相同修饰符,相同方法名,相同参数) 11.多态,子类->父类(向上转型 父类->子类(向下转换,强制类型转换) 12.super关键字,子类里面访问父类的方法 13.super()可以出现在构造方法第一行,默认自动生成,不会创建父类,只是用来初始化,用来调用父类的构造方法。 14.final关键字 15.abstract抽象类 非抽象类调用抽象类,必须将抽象类中的方法覆盖、重写 二、深入final关键字 1.抽象类不可以被final关键字修饰(抽象类定义出来就是用来继承的) 2.fianl修饰的引用类型,该引用不可以再重新指向其他的java对象 但是final修饰的引用,该引用指向的对象的属性是可以修改的。 package com.bjpowernode.java_learning; ​ public class D53_1_FinalKeywordAddition

【Spring学习随笔】3. Spring Bean

落花浮王杯 提交于 2019-12-05 14:51:54
3. Spring Bean 3.1 Bean的配置 ​ Spring可以看作一个大型工厂,用于生产和管理Spring容器中的Bean。如果要使用这个工厂生产和管理bean,需要开发者将Bean配置在Spring的配置文件中。Spring框架支持XML和Properties两种格式的配置文件,在实际开发中常用XML格式的配置文件。 3.1.1 <bean> 元素的常用属性及其子元素 3.1.2 Bean的配置实例代码 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 使用id属性定义myTestDIDao,其对应的实现类为dao.TestDIDaoImpl--> <bean id="myTestDIDao" class="dao.TestDIDaoImpl" /> <!--

test test test

北战南征 提交于 2019-12-05 14:48:17
test - public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 - public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 - public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。 - public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 - public abstract void write(int b) :将指定的字节输出流。 test - public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 - public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。 - public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。 - public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。 - public abstract void write(int b) :将指定的字节输出流。 test - public void

08封装继承多肽

▼魔方 西西 提交于 2019-12-05 14:46:41
继承: extends 获取父类拥有的属性跟成员方法 java 中只能单继承,只有一个父类。 构造方法不能继承过来,私有的属性可以继承不能直接使用。私有的方法不能继承。 创建子类对象必须先调用父类的构造方法(默认调用父类无参数构造方法) super() 表示构造方法的时候必须放在第一行。 this() 表示构造方法的时候也必须放在第一行。 复写: override :对于父类继承过来的方法重写覆盖里面的逻辑 1, 方法必须一样 2, 参数列表必须一样 3, 必须具有访问权限 4, 返回类型 <= 父类的类型 重载 方法名必须相同 参数列表一定不一样 this 表示本来的方法, super 表示父类的方法 public 表示公开的 ,谁都有权限访问 private 表示只有本类可以访问 protected 表示子类可以访问 同包下的可以访问 default: 表示同包下可以访问 多态 : 父类对象引用子类实例 * 向下转型需要强转 ,向上转型不需要强转 来源: https://www.cnblogs.com/beimo/p/11929014.html

在idea中使用lombook插件

荒凉一梦 提交于 2019-12-05 14:23:45
这个插件的好处在于可以让我们的代码更简洁,减少一些重复的工作,最常用的就是@Data注解,比如在实体类上使用@Data注解,实体类的各个属性就不需要书写get和set方法。 使用方法:   安装完毕后,就可以直接以注解的形式使用。比如使用@Data注解,新建一个User实体类,然后直接在类的前面加上@Data注解,这样一来,这个实体类中的属性就不需要get和set方法了,如下图: 还有一些比较常用的注解,比如: @AllArgsConstructor 加在类上,可以生成含实体类全参数的构造方法。 @NoArgsConstructor 加在类上,可以生成无参构造方法。 @RequiredArgsConstructor 加在类上,配合@NonNull注解使用,生成指定参数的构造方法。比如在age属性前面加@NonNull注解,则User生成需要age参数的构造方法。 @Getter 加在类上,可以生成实体类所有属性的getter方法。 @Setter 加在类上,可以生成实体类所有属性的setter方法。 @ToString 加在类上,调用toString()方法,可以输出实体类中所有属性的值。 使用前提 1.在idea中添加lombook插件 File→Settings→Plugins,输入mybatis plugin,本地没搜到,就可以点击Search in repositories

Java基础知识

走远了吗. 提交于 2019-12-05 11:21:29
1. 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点: 没有面向对象易维护、易复用、易扩展 面向对象 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点: 性能比面向过程低 2. Java 语言有哪些特点 简单易学; 面向对象(封装,继承,多态); 平台无关性( Java 虚拟机实现平台无关性); 可靠性; 安全性; 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持); 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设计的,因此 Java 语言不仅支持网络编程而且很方便); 编译与解释并存; 3. 什么是 JDK 什么是 JRE 什么是 JVM 三者之间的联系与区别 这几个是Java中很基本很基本的东西,但是我相信一定还有很多人搞不清楚!为什么呢?因为我们大多数时候在使用现成的编译工具以及环境的时候,并没有去考虑这些东西。 JDK: 顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime

杂记5

你说的曾经没有我的故事 提交于 2019-12-05 09:48:56
@Autowired 对构造函数使用@Autowired,更加好。@Autowired修饰变量,构造函数执行后再Auto wired,会报错,因为顺序是先静态变量或静态语句块–>实例变量或初始化语句块–>构造方法–>@Autowired。 接口和impl 大型项目中最好对控制器做好接口然后再实现,这样之后容易改。(都这么说,反正没做过大型项目) slf4j 日志工具类 import org.slf4j.Logger; import org.slf4j.LoggerFactory; Calendar 日历工具类 来源: https://www.cnblogs.com/bestefforts/p/11919818.html

IntentService类 和 异步任务(AsyncTask)

£可爱£侵袭症+ 提交于 2019-12-05 08:27:04
IntentService是一个Service类。 IntentService只有1个带String参数的构造方法,所以,在自定义类继承IntentService时,需要在自定义类中显式的调用IntentService带参数的构造方法,并且将自定义类的构造方法修改为无参数的。 IntentService内部使用消息机制,利用消息队列的特性,可以依次处理多个耗时操作。 IntentService具有生命力强、一次性使用、依次处理多个耗时操作的特性。 注意:在自定义类继承IntentService时,可以重写IntentService的生命周期方法,但是,不可以删除super语句 IntentService与ResultReceiver ---------------------------------- ResultReceiver可以实现组件间的通信 【开发流程】 1. 自定义类继承IntentService,显式的定义无参数的构造方法,并注册 2. 在接收结果的类(例如Activity类)中自定义内部类继承ResultReceiver 3. 在需要IntentService执行任务时,使用startService()激活Service组件,并且,将自定义的ResultReceiver对象封装到用于激活IntentService的Intent对象中 4.

JAVA继承中子父类的构造方法

感情迁移 提交于 2019-12-05 07:43:31
首先,构造方法 本身会有一个隐式的无参构造 (默认):   ①不写构造方法, 类中的第一行代码事 实上有一个 默认的无参构造 (系统会 隐式 为你写好)      public class Student { private String name; // public Student() {} 隐式地“写”在这里,你看不见 // Strudent类中虽然没有写构造方法,但相当于有上面的无参构造 // 只不过是隐式的,你看不见 }   ②只写带参构造方法,相当于只有该带参构造方法(隐式的无参构造会被 屏蔽无视掉 ,视为无效) public class Student { private String name; public Student(String name) { this.name=name; } // 此时原来Strudent类中的隐式的无参构造方法被屏蔽了,无效了 // 类中只有带参构造 }   ③若想同时拥有无参和带参构造,必须 显式地写出无参 和带参构造方法 public class Student { private String name; public Student() {} // 显式地将无参构造写出来 public Student(String name) { this.name=name; } // 若想Strudent类中拥有无参构造方法

Java的反射机制

偶尔善良 提交于 2019-12-05 07:38:40
Java 的反射机制是Java特性之一,反射机制是构建框架技术的基础所在。灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助。 那么什么是Java的反射呢? 大家都知道,要让Java程序能够运行,那么就得让Java类要被Java虚拟机加载。Java类如果不被Java虚拟机加载,是不能正常运行的。现在我们运行的所有的程序都是在编译期的时候就已经知道了你所需要的那个类的已经被加载了。 Java 的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期并不知道的类。这样的特点就是反射。 那么Java反射有什么作用呢? 假如我们有两个程序员,一个程序员在写程序的时候,需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码能否通过编译呢?这是不能通过编译的。利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。 Java 的反射机制它知道类的基本结构,这种对 Java 类结构探知的能力,我们称为 Java 类的“自审” 。大家都用过Jcreator和eclipse。当我们构建出一个对象的时候,去调用该对象的方法和属性的时候。一按点,编译工具就会自动的把该对象能够使用的所有的方法和属性全部都列出来,供用户进行选择。这就是利用了Java反射的原理