【Java】SE总结

简介: 计算机体系计算机的组成CPU的工作原理Java中的语句Java中,能出现语句的位置有哪些语句何时被执行 语句的执行触发大体有三种类的加载、对象的实例化、方法的调用什么时候进行类的加载什么情况下类被用到类加载时语句的执行顺序对象实例化和对象实例化有关的语句Java中的数据直接接触到的数据内存中的数据被抽象成Java语句中的哪些概念数据在内存中的位置 变量的存储 数据有哪些Java中的语法类的职责赋值语句几个重要关键字的作用 面向对象编程面向对象的三大特征方法的重写

计算机体系

计算机的组成

7.png

CPU的工作原理

从哪里读


       1、按顺序度,一条一条读取                ——>                顺序执行语句


       2、按照指定地址,读取                       ——>                分支执行语句、循环执行语句


程序 = 语句 + 数据(粗略)


Java中的语句

Java中,能出现语句的位置有哪些


1、方法的内部(不区分哪种方法,除了抽象方法)


2、类的内部,作为属性定义时,赋值语句也可以出现


       class  A {


               int  a  =  hello();                        


       }


       定义属性  a  时,执行  hello  方法(语句)


3、各种各样的代码块


       构造代码块、静态代码块


4、出现在构造方法中


注:像  import java.util.Scanner 的这种导入包的操作不是语句


语句何时被执行

8.png

方法中的语句,一定是被调用时,才会执行


1、静态方法,光有类,就可以开始调用了


2、普通方法,必须先通过类实例化出对象,才能通过对象去调用


3、唯一的特殊方法时 main 方法,是被JVM调用的,我们看不到调用位置


语句的执行触发大体有三种

1、某个类被加载时,会触发一批语句的执行


2、某个类实例化对象时,会触发一批对象的执行


3、某个类的方法被调用时,会触发一批语句的执行


类的加载、对象的实例化、方法的调用

什么时候进行类的加载


类被用到并且类还没有被加载过

注:类的加载往往只执行一次


什么情况下类被用到

1、用到了类中的静态属性或者类里的静态方法时

2、要用该类实例化对象时

3、用到子类,会触发用到父类(包含接口)


类加载时语句的执行顺序

静态属性定义时的赋值语句、静态代码块中的语句。执行顺序按照书写顺序依次执行

父类的所有语句执行完,才能执行子类的语句


对象实例化

对象的实例化可能会触发类的加载,当类已经加载过后,对象的实例化就不会触发类的加载

类的加载完成后,可能紧跟着对象的实例化


和对象实例化有关的语句

1、属性定义时的赋值语句


2、构造代码块中的语句


3、构造方法中的语句


执行顺序:


       属性定义和构造带吗,按照书写顺序执行,之后才执行构造方法中的语句


       子类实例化时,必须要求父类的所有实例化相关语句全部完成后,才开始执行子类的


Java中的数据

直接接触到的数据

1、基本类型

byte、short、int、long

char

float、double

boolean

2、引用类型

class 类型

接口类型

数组类型

3、字面量

内存中的数据被抽象成Java语句中的哪些概念

1、变量

2、数组中的元素

3、对象


数据在内存中的位置

JVM中,针对一个Java进程,分为栈区、堆区、方法区


对象在堆区上


引用的区域不确定,需要有其他条件来明确


类存在于方法区


局部变量:存在于该方法执行时,创建的栈帧中,总的里说是栈区


对象的属性:存在于属性附着的对象上,总的来说是堆区


类的静态属性:存在于静态属性附着的类上,总的来说是方法区


数组的元素存在于元素附着的数组对象上,所以存在于堆区


方法的某次执行时需要的数据,以栈帧的形式,放置在栈区


9.png

9.png

变量的存储

1、基本类型


byte、short、int、long                        1、2、4、8字节,按照指定规则,把数字保存起来


float、double                                        4、8字节,以浮点数保存(有精度损失)


char                                                       2字节,以UTF-16方式保存,保存的Unicode编码


boolean                                                无固定


2、引用类型是什么


引用类型不像基本类型,保存的数据是无法直接使用的,而是间接使用的


引用类型可以存对象地址,但不要求必须存对象的地址


引用中存的是找到对象的 “ 线索 ” ,逻辑上,引用是指向对象的


10.png

数据有哪些

程序员可以直接接触到的:变量、字面量、数组元素

程序员无法直接接触到的,但是使用非常频繁的

       1、对象(属性)

       2、类(静态属性、类相关的方法、父类信息)


Java中的语法

Java代码,是以类为基本单元进行组织的

包的声明:package ... ;

类的导入:import ...;

类的定义:一个Java文件中最多只能有一个public类,类名和文件名相同

类的职责

1、作为静态属性、静态方法的存在位置

2、作为构造对象的模板(属性、构造方法、方法)

3、作为被继承的模板(属性、构造方法、方法)

4、抽象类和接口是其的特殊化

赋值语句

赋值语句等号的左边是一个内存空间(变量、数组元素),等号的右边只要是个值就行

1、显式赋值


a = ...;


a[0] = ...;


2、隐式赋值


方法的调用,隐含着,形参 = 实参的赋值     add(1,2)                add(int a,int b){...}


                                       a = 1;b = 2;


方法的返回,隐含着,返回值 = return 的值


       int add(...){...    return 1;}        隐含着int returnValue = 1;


方法调用后赋值, int c = add(1,2);        c = ...;


3、赋值的基本要求


等号两边的类型完全一致或者等号两边的类型,具备转换的可能性        


       1)可以直接转换的


             int -> long、float -> double、long -> double                逻辑上小范围赋值给大范围


             String -> Object、int[] -> Object


       2)不能直接转换,但是可以强制转换的


             逻辑上大范围赋值给小范围


             float -> int、double -> float、Object -> String、Object -> int[]


几个重要关键字的作用

static


1、静态导入


2、全部出现在类的内部,方法的外部;与该类的对象解绑,只和类有关系


     静态属性、静态方法、静态代码块、静态内部类


final


1、修饰变量


     变量的值只能赋值一次,之后不可改变


2、修饰类


     变为最终类,只可实例化对象,不能被继承


3、修饰方法


abstract


1、修饰类


     变为抽象类,只可被继承,不能实例化对象


2、修饰方法


this


     在构造方法中调用自己的其他构造方法;访问自己的属性、方法


super


     在构造方法中,调用父类的构造方法;方法 “ 父类 ” 的属性、方法


面向对象编程

为了程序员考虑的一种编程思想,帮助我们更好的划分出类的职责


表现为,把现实世界中的一类事物抽象成一组相关的数据,以及数据管理的一组方法


面向对象的三大特征

1、封装


       哪些职责归哪些对象管,尽可能不公开相关数据(工具:访问限定符、方法)


2、多态


       作为服务的使用(以方法的形式提供,不需要知道,方法是具体对象实现的),表现为多种形态


3、继承


       类继承(extends)某个类                单继承


       接口继承(extends)某些接口         多继承


       类实现(implements)某些接口        多实现


方法的重写

粗略的要求:返回值类型、方法名称、方法的形参完全一致


目录
相关文章
|
6天前
|
存储 Java 编译器
【Java SE语法篇】7.面向对象——类和对象
【Java SE语法篇】7.面向对象——类和对象
【Java SE语法篇】7.面向对象——类和对象
|
6天前
|
存储 Java
【Java SE语法篇】3.运算符
【Java SE语法篇】3.运算符
|
6天前
|
存储 Oracle Java
【Java SE语法篇】2.数据类型和变量
【Java SE语法篇】2.数据类型和变量
|
6天前
|
Java API
Java基础知识:什么是Java平台,包括Java SE,Java EE和Java ME?
Java基础知识:什么是Java平台,包括Java SE,Java EE和Java ME?
64 2
|
6天前
|
Java 开发框架 XML
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
JDK、JRE、Java SE、Java EE和Java ME有什么区别?
|
6天前
|
Java 索引
Java SE ____二维数组
Java SE ____二维数组
|
6天前
|
分布式计算 安全 Java
Java的三大体系架构:深入剖析Java的三大体系架构,包括Java SE、Java ME和Java EE等
Java的三大体系架构:深入剖析Java的三大体系架构,包括Java SE、Java ME和Java EE等
52 1
|
6天前
|
存储 监控 Java
【Java SE语法篇】11.异常
【Java SE语法篇】11.异常
|
6天前
|
存储 Java 索引
【Java SE语法篇】10.String类
【Java SE语法篇】10.String类
|
6天前
|
Java 程序员
【Java SE语法篇】9.抽象类和接口
【Java SE语法篇】9.抽象类和接口