类对象

线程

亡梦爱人 提交于 2020-03-03 19:18:11
线程 并发 :指两个或多个事件在 同一个时间段内 发生。 并行 :指两个或多个事件在 同一时刻 发生(同时发生)。 进程 :是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程 :线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 多次启动一个线程是非法的。当线程已经结束后,不能重新启动。 Java程序属于抢占式调度,那个线程优先级高优先执行那个程序,同一优先级的线程随机选择执行。 多线程内存图解 创建线程第一种方法: 自定义线程类: public class MyThread extends Thread { /* * 利用继承中的特点 * 将线程名称传递 进行设置 */ public MyThread ( String name ) { super ( name ) ; } /* * 重写run方法 * 定义线程要执行的代码 */ @Override public void run ( ) { for ( int i = 0 ; i < 20 ; i ++ )

Chapter01 对象入门

霸气de小男生 提交于 2020-03-03 11:59:17
对象 什么是对象 代码角度:从概念上将各式各样的数据和功能封装到了一起 体系角度:物化 发消息/发请求 向目标对象 发消息 或 发请求 :就是调用目标对象的目标方法,例如向Light类型(灯类型)的对象lt(灯对象)发送开灯消息:lt.on() Light lt = new Light ( ) ; lt . on ( ) ; // 向lt对象发送开灯消息:发消息或发请求 实现方案的隐藏 类创建者 :目标是从头构建一个类,只向 类使用者 开放必要开发的接口,其他所有细节都隐藏起来;隐藏之后,类使用者就不能修改那些隐藏的细节!这里的隐藏是从代码层面使用 访问权限关键字public、protected、private、default 来修饰成员变量与成员方法,当类编译成字节码文件后,类使用者当然只能使用类创建者提供的公共的接口 类使用者 :使用别人开发好的类(字节码class文件或源代码,如果是源代码当然可以修改了),不必关系该类的实现细节 接口 :接口Interface规定了可对一个特定的对象发出哪些请求,所以必须在某些地方存在着一些代码以满足这些请求,在代码层面上其实就是 public的方法,即类对外提供的公共接口 隐藏实现 :类对外提供的公共接口+隐藏起来的数据。 类使用者 只需要知道类提供的公共接口能够完成什么功能即可,不需要知道该接口里面是怎么实现的:实现手段就是 访问控制

(代码块;继承;this与super关系;继承关系中构造方法和成员方法的关系;重载与重写对比;类的继承特点;final关键字;)Java零基础学习笔记 Day08

旧时模样 提交于 2020-03-02 14:33:13
一,代码块 概述:被大阔号单独包裹的代码段叫做代码块 ​根据位置的不同,命名的不同他的使用时机和功能不一样。 分类: ​ 局部代码块 ​ 构造代码块 ​ 静态代码块 ​ 同步代码块【今天不讲,多线程的时候讲】 局部代码块 ​ 概述:定义在方法中的代码块 ​ 位置:方法的方法体中 ​ 作用:给局部变量赋值,或者定义局部变量 代码 package com.ujiuye.demo; import java.util.Arrays; public class Demo01 { public static void main(String[] args) { Demo01 demo01 = new Demo01(); demo01.show(); } public void show() { int a = 10 ;//局部变量 //局部代码块 { a = 30 ; int b = 40;//局部变量 System.out.println(a);//30 10 System.out.println(b);//40 } System.out.println(a);//30 代码块对外面的局部变量的赋值是永久的 //System.out.println(b);输出不了 b变量的生存范围变小了 } } 总结: 好处:缩小了局部变量的使用范围和生命周期,及时的释放内存空间达到提升运行效率。 注意:

Spring中对象和属性的注入方式

怎甘沉沦 提交于 2020-03-02 07:20:39
一:Spring的bean管理 1.xml方式    bean 实例化三种xml方式实现 第一种 使用类的无参数构造创建,首先类中得有无参构造器(重点) 第二种 使用静态工厂创建 (1 )创建静态的方法,返回类对象 第三种 使用实例工厂创建 (1 )创建不是静态的方法,返回类对象      2.注解方式 1.导入jar包 2.引入约束 3.创建类对象,在对象上使用注解实现 4.开启注解扫描 5.测试 创建对象有四个注解 (1 )@Component (2 )@Controller (3 )@Service (4 )@Repository 目前这四个注解功能是一样的,都创建对象 二:属性注入介绍 属性注入的xml方式介绍(三种方式) (1 )使用set 方法注入 (2 )使用有参数构造注入 (3 )使用接口注入(不是重点) 注入对象类型属性(重点) 注解注入属性(对象也是) (1 )创建dao 和service 对象 (2 )在service 类里面定义dao 类型属性 Autowired 不需要匹配对象属性的value 值userDao。 注入属性第二个注解 @Resource , 这个注解的 name 值需要与 dao 对象属性的 value 值 userDao 匹配 。 三: 注入复杂类型属性 1 数组 2 list 集合 3 map 集合 4 properties 类型 <!

继承中的关键字

点点圈 提交于 2020-02-29 11:22:09
继承中的关键字 1. 继承的基本含义: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。子类最基本的功能就是维持父类的基本操作,但是子类可以对其功能的扩充。 2. extends 格式:class A extends B { } 表示A类是B类的一个子类,B类是A类的 唯一 父类。 在Java当中的继承是单继承,不允许多继承(class A extends B,C),单继承就是子类只有一个唯一的父类,但是可以多重继承(class A extends B ,class B extends C)。 子类会显式继承父类当中所有的非私有化的成员变量和成员方法,所有的私有化成员可以通过Setter和Getter方法来操作,且构造方法不会被继承。 子类在继承父类成员的同时,可以进行扩展,定义属于自己的成员变量和成员方法,对其功能进行扩充。 3.super 功能1: 调用父类的成员变量和方法 。 子类继承父类中的成员变量和方法,当子类声明了与父类相同的成员变量以及对父类当中的成员方法进行重写之后,使用子类实例调用的成员变量与方法就是子类当中的成员变量和方法,而这时想要调用父类当中已经被重写被覆盖的成员就需要用到super关键字,在子类当中使用super关键字在调用成员变量和方法时会直接跳过子类

关于String StringBuffer StringBuilder

余生长醉 提交于 2020-02-29 11:09:46
0. String对象的创建 1、关于类对象的创建,很普通的一种方式就是利用构造器,String类也不例外:String s=new String("Hello world"); 问题是参数"Hello world"是什么东西,也是字符串对象吗?莫非用字符串对象创建一个字符串对象? 2、当然,String类对象还有一种大家都很喜欢的创建方式:String s="Hello world"; 但是有点怪呀,怎么与基本数据类型的赋值操作(int i=1)很像呀? 在开始解释这些问题之前,我们先引入一些必要的知识: 1. Java class文件结构 和常量池 我们都知道,Java程序要运行,首先需要编译器将源代码文件编译成字节码文件(也就是.class文件)。然后在由JVM解释执行。 class文件是8位字节的二进制流 。这些二进制流的涵义由一些紧凑的有意义的项 组成。比如class字节流中最开始的4个字节组成的项叫做魔数 (magic),其意义在于分辨class文件(值为0xCAFEBABE)与非class文件。class字节流大致结构如下图左侧。 其中,在class文件中有一个非常重要的项—— 常量池 。这个常量池专门放置源代码中的符号信息(并且不同的符号信息放置在不同标志的常量表中)。如上图右侧是HelloWorld代码中的常量表(HelloWorld代码如下)

(三)java高级1

↘锁芯ラ 提交于 2020-02-28 19:40:10
分享以一下最近学习java的网站是:https://how2j.cn/k/reflection/reflection-usage/1111.html?p=131627 这篇文章也是根据网站的来学习。 一、关于反射机制 1.先要了解的概念 1.1.类对象概念 所有的类,都存在一个类对象,这个类对象用于提供类本身的信息,比如有几种构造方法, 有多少属性,有哪些普通方法。 类:有定义好的属性、方法的,可以完成一定功能的class 对象:类实例化,就是给类中的属性赋值,在内存中开辟一个这个类的实际的存在; 类对象:用来描述这种类,都有什么属性,什么方法的(不关对象的事情,不是实例化的) 1.2如何获取类对象 有三种,比如Hero是我们创建好的一个类 Class.forName(“package.Hero”) Hero.class New Hero.getClass() 2.反射机制 2.1 使用反射机制获取对象 与传统的通过new 来获取对象的方式不同 反射机制,会先拿到Hero的“类对象”,然后通过类对象获取“构造器对象” 再通过构造器对象创建一个对象 package reflection; import java.lang.reflect.Constructor; import charactor.Hero; public class TestReflection { public

【Java】内部类

巧了我就是萌 提交于 2020-02-28 06:16:52
前言 将一个类的定义放在另外一个类定义的内部,里面的就叫做内部类 。内部类是一种非常有用的特性,它允许你把一些逻辑相关的类组织在一起,并控制内部的类的可视性。 内部类看起来像是一种代码隐藏机制:将类的实现定义在了其他类中。但是,内部类的优点远不止于此,它可以访问外围类的任何成员并与之通信、让一个类实现多继承等 。本篇博客先介绍内部类的基础语法,然后介绍内部类的一些特性。 内部类的创建及使用 public class Parcel { //内部类 class Contents{ private int i = 1; public int value() {return i;} } //内部类 class Destination{ private String label; Destination(String whereTo){ label = whereTo; } String readLabel() {return label;} } public void ship(String dest) { Contents c = new Contents(); Destination d = new Destination(dest); System.out.println(d.readLabel()); } //获取内部类对象 public Contents contents()

读《java编程思想》10-内部类

爱⌒轻易说出口 提交于 2020-02-28 05:35:52
将一个类定义放在另一个类的定义内部,这就是内部类。 1、创建内部类对象方法,假设有一个外部类Outer,其中有一个内部类Inner。 (1)在外部类中,提供创建并返回内部类对象的方法,方法名可以和内部类名字相同(首字母小写), 如: public void inner() { return new Inner(); } (2)先创建外部类对象,然后使用外部对象.new的方式创建内部类。 如: Outer outer = new Outer(); Outer.Inner inner = outer.new Inner() 2、内部类 和 其构造方法都支持所有的访问修饰符,并受到访问控制。(和普通的成员变量 和 普通方法一样) (1)内部类默认的是包访问。如果在和定义不同的包中使用Outer.Inner声明变量,就会提示无法访问Inner。 (2)内部类的缺省构造方法默认的是包访问。如果在和定义不同的包中使用outer.new Inner(),则会提示构造函数无法访问。 (第一种创建方式是不是更简单呢) 3、链接到外部类 (1)内部类可以访问外部类所有成员,因为内部类默认存在一个指向外部类的引用。 (2)如果需要在内部类内部返回此引用,可以使用外部类.this 返回。 (3)外部类可以创建内部类对象,通过此对象直接访问内部类所有成员(包括private)。 4、私有内部类 + 向上转型

Java内部类与常用类

我怕爱的太早我们不能终老 提交于 2020-02-28 03:41:03
@Java 内部类与常用类知识模板 大家好,我是Ziph! 今天分享下面内部类与常用类的知识内容。 结合思维导图学习效果更佳!点击下方链接进入 Java内部类与常用类思维导图 一、内部类 内部类的分类 成员内部类 静态内部类 局部内部类 匿名内部类 什么是内部类 概念:在一个类的内部再定义一个完整的类 特点: 编译之后可生成独立的字节码文件 内部类可直接访问外部类的私有成员,而不破坏封装 可为外部类提供必要的内部功能组件 成员内部类 在类的内部定义,与实现变量、实例方法同级别的类 外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象 Outer out = new Outer(); Inner in = out.new Inner(); 当外部类、内部类存在重名属性时,会优先访问内部类属性 成员内部类不能定义静态成员 静态内部类 不依赖外部类对象,可直接创建或通过类名访问,可声明静态成员 只能直接访问外部类的静态成员(实例成员需实例化外部类对象) Outer.Inner inner = new Outer.Inner(); Outer.Inner.show(); 局部内部类 定义在外部类方法中,作用范围和创建对象范围仅限于当前方法 局部内部类访问外部类当前方法中的局部变量时,因无法保证变量的声明周期与自身相同,变量必须修饰为final 限制类的使用范围 匿名内部类