java SE理论

Posted codeing-boy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java SE理论相关的知识,希望对你有一定的参考价值。

Java入门 变量 运算符

Java的基本知识

         这部分自行百度,百度百科会有详细解释,了解java语言的特点,

JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

jre:java的运行环境 。运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

jvm:java虚拟机,计算机设备的规范,是一个虚构出来的计算机

jcp: 是一个开放的国际组织,由Java开发者以及被授权者 发展和更新

api:应用程序的编程接口 预先定义的函数

提供应用程序与开发人员基于某软件或硬件访问数据的能力,而又无需访问源码;无需了解内部工作细节

oop:Object Oriented Programming 面向对象编程

ooa:Object-Oriented Analysis 面向对象分析方法

ood: Object-Oriented Desig 面向对象设计

其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。

 

         Java 特点面向对象 简单 分布式 健壮性 安全 可移植 多线程 动态性 编译和解释性 高性能

Java的变量

         Java的变量,java中的变量主要包括8种,byte short int long char double float  Boolean

相关的封装类型 长度及范围如下:

数据类型

内存

封装类型

范围

byte

8位

Byte

-128

127

short

16位

Short

32767

-32768

int

32位

Integer

2147483647

-2147483648

long

64位

Long

-9223372036854775808

9223372036854775807

浮点类型

数据类型

内存

封装类型

 

float

32位

Float

1.4E-45

3.4028235E38

double

64位

Double

4.9E-324

1.7976931348623157E308

** long定义时在后面添加上L l

** float定义时在后面添加上F f

** double定义时在后面添加上D d

char

数据类型

内存

封装类型

char

16位

Character

放在单引号内 存放unicode 可以与unicode的编码相互转换

A=65 ; Z=90

a=97 ; z=122

boolean

数据类型

内存

封装类型

boolean

8位

Boolean

直接赋值和逻辑判断赋值

 

还有一中数据类型,String 但string不是基本数据类型,

变量名

         变量先声明,赋值,再使用(类中实例变量不用,在创建对象时,会初始化为相关数据类型的默认值,方法里的局部变量必须先声明才能使用)

         变量名:只能有字母 数字 下划线 $ 组成,不能以数字开头,不能使用关键字作为变量名,变量名小驼峰,第一个字母小写,后边大写

         变量类型的转换,由低转高,高转低会丢失精度,char 类型与整型的转换,

         常量 final 一次赋值不能更改 常量名大写单词使用下划线隔开

         Static 使用类名调用,也可以使用对象调用  关于static的机制这里不多做说明,后边可能回详细介绍    

运算符

在java中的运算符分为以下几种

算术运算符: +  -   *   /   %   ++   --   +=   -=   *=   /=   %=   >> <<

自增(自减)运算在表达式中的 的先后循序 i++ 先使用i的值

         ++i,i先执行运算,再执行外围表达式

         关系运算符 < > <= >= != ==  运算结果是一个boolean类型的结果

    逻辑运算符

&&  &   与  &&具有短路效果 第一个表达式为false,就不会执行第二个表达式

||  |   或 ||具有短路效果  第一个表达式为true,就不会执行第二个表达式

         三元运算符:

A?b:c A 语句 为真 返回b 否则c

 

        

流程分支

流程控制,if语句 和switch语句

if(condition){……}      /if(condition){……}else{……}/ if(condition){……}else if(){……} else{……}

开关语句         switch (){case    ……;break;default  ……;break;}

没有break;会执行下一句,直到break语句

default的位置无关

case: 表达式唯一

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串类型了,同时 case 标签必须为字符串常量或字面量。

循环处理

循环for循环  while(condition){….} do{…..}while(condition);

For([起始条件];[循环条件];[步长]){

…..}

起始条件,循环条件,步长可能没有表达式,一个或多个

While与do while的条件都是一个结果为boolean的表达式,

do while,先执行一次循环体

面向对象

在java中,类封装了属性和方法来描述一类事物的特性和行为,通过类的实例化来创建对象.

权限修饰符 class [className]{

         //属性

         //方法

}

构造方法,jvm会默认提供一个无参的构造方法,用户自定义其他有参的构造方法时需要写出无参构造

类名 对象=new 类名();

对象.属性;//赋值或访问

对象.方法;//调用方法

类与对象的关系:

类是对象的类型;

对象是类的实例

类是模板;对象是模板创建的副本

一个类创建的对象:彼此不共享(static 修饰的变量所有对象共享)

new是的对象的实例化

属性:属性是对类型的特征描述;本质上是变量;由类进行封装(打包)

this 在构造方法间相互调用,但是自能在第一行,

this 代表当前对象,可以调用其他实例方法,在方法中解决 全局变来量与局部变量的重名问题,

方法重载

  • 在同一类中:有两个两个以上的方法,方法名相同;但形势参数参列表不同(个数或类型不同)
  • 注意
    • 构造方法和成员方法都可以重载
    • 调用时根据方法的形参列表匹配
  • 与返回值类型和权限修饰符无关

static修饰符的含义相关知识

static的含义:在java的类的加载过程中通过static关键字,告知内存分配机制进行优先分配内存地址(空间),即可以提前获取内存地址

相关知识

不仅可以修饰方法和变量;还可以修饰代码块同时代码块只执行一次(初始化)

可以使用类名直接调用类方法或者类变量

传统方式使用对象名调用 :对象名.方法();对象名.属性方法()

直接方式:类名.方法();类名.属性方法

static不能修饰局部变量

一般情况下、 类方法不能访问实例变量 也能访问实例方法

一般情况下、实例方法中不推荐使用类变量

 

继承

  • 在代码上使用extends实现继承关系
  • 子类在前 父类在后 public class 子类 extends 父类
  • 继承具有传递性
  • 在java中,Object是左右类的祖先,一般情况下称为超类或基类,所有子类直接或间接的继承Object类;
  • 子类不能继承父类的私有’财产‘(private)
  • 不能继承父类的构造方法

抽象类和抽象方法特点,关系

  • 使用abstract修饰的类是抽象类,使用abstract的方法抽象方法
  • 抽象类不能实例化,不能创建对象,但有构造方法
  • 抽象类与是否存在抽象方法无关
  • 抽象类存在子类,并子类重新是抽象类中的抽象方法,子类必须全部重写父类的所有抽象方法,否则子类必须定义为抽象类
  • 抽象方法:只有方法名,没有方法体;没有功能的具体实现
  • 二者的关系:抽象类中不一定含有抽象方法;抽象方法存在于抽象类或接口中

方法的重写满足条件

  • 方法的重写基于继承的条件下
  • 子类根据开发需求重写(覆盖)父类的方法
  • 重写满足要求
    • 重写的方法名与被重写的方法名一致
    • 参数列表也相同
    • 返回值类型相同,或者是其子类
    • 权限修饰不能缩小 (public >protected>default>private)

如何使用super调用父类的属性、方法、构造方法

首先、子类具有调用父类属性、方法的权限

使用关键字 super调用父类的元素  

super.属性名 》》》super.name

super.方法名(形参列表)

※  super()   或 super(形参列表) //调用构造方法时,必须放在子类构造方法的第一行 调用的是(直接)父类的构造方法     有时 可以省略

接口

  1. 自定义一个实现类,使用implement可接多个接口名称,使用“,”号隔开
  2. 推荐该实现类实现所有接口中的所有抽象方法,否则将实现类定义为抽象类
  3. 一个类在实现一个接口或多个接口的同时也可以继承一个类;

public EmpDaoImpl extends Object implements EmpDao1 ,EmpDao2{……}

接口的特性

  • 接口支持默认和public两种权限
  • 接口的命名规范与类相同
  • 接口可以继承(extend)一个或多个接口(使用逗号分隔),但不能继承类
  • 接口中不能定义变量,只能定义常量 (系统默认会加上 public final static )
  • 接口中的方法都是全局抽象方法(系统默认添加
  • 根据JDK的版本、动态决定接口的新特性
  • 1.8后接口可以定义实例方法 使用default修饰,
  • 接口中只能定义常量,默认添加public final static

 

多态

在继承的条件下:具有多种行为(形态)表现的集合特征

实现多态

继承的存在

子类重写父类的方法

向上转型

    定义方法时、形式参数类表类型的定义;推荐使用父类(object)类作为形式参数的类型

定义方法时、返回值类型的定义:推荐使用父类(Object)作为返回值类型或者Object[](对象数组)

判断一个对象是否属于某个类(型)或接口的引用

一般情况下结合逻辑判断语句使用,返回boolean类型

if(对象名 instanceof 类){

 

}

else{

}

好处:体现代码的健壮性通常与强制类型转换

 

以上是关于java SE理论的主要内容,如果未能解决你的问题,请参考以下文章

Java SE之基础篇——方法

Java SE 基础 Java的语言特点

理论计算机科学学习网站

Java SE环境中测试JPA实体的简单方法

5本最佳的 Java 面向对象理论和设计模式的书籍

【理论知识】Dex文件结构分析