java的根基类_java 基础笔记
发布日期:2021-06-24 01:38:56 浏览次数:6 分类:技术文章

本文共 2657 字,大约阅读时间需要 8 分钟。

JDK的安装:

下载、安装

配置环境变量

a)         path:.;%JAVA_HOME%\bin;

b)        JAVA_HOME:JDK的安装目录

c)         classpath

JDK和JRE和JVM:

JAVA程序运行过程:

编译javac :把java源文件编译成class字节码文件

运行java :运行class文件

标识符(给类、方法、变量起名):

以字母(采用Unicode字符集)、下划线、$ 开头

其余部分可以是:字母(采用Unicode字符集)、下划线、$、数字

不能为关键字

变量:

局部变量

定义在方法内或语句块内。 从属于方法或语句块。

使用之前,必须要手动初始化!

成员变量(实例变量 field)

定义在类里面、方法外面。  从属于对象!

如果我们没有手动初始化成员变量,系统会自动初始化。初始化的规则如下:

数字:0,0.0   布尔:false  char:\u0000   引用类型:null

静态变量(类变量)

定义在类里面、方法外面、使用static修饰。 从属于类!

如果我们没有手动初始化静态变量,系统会自动初始化。初始化规则同成员变量。

数据类型:

1.基本数据类型

a)数字

i.整数:byte(1个字节)  short(2个字节)   int(4个字节,整型常量默认该类型)   long(8个字节)

ii.浮点数:float(4个字节)  double(8个字节,浮点常量默认为该类型)

b)字符 char(2个字节)

c)布尔  boolean(1位)

2.引用类型(4个字节)

a)数组

b)对象

c)接口

表达式:

1.类型的自动提升

如果有long,结果就是long。

如果有double,结果就是double。

2.强制转型

运算符:

1.赋值运算符(=)

if(b=true)  if(b)       if(c=3)  if(3==c)

2.算术运算符

3.关系运算符(==)

常见错误写法: 1

4.逻辑运算符

&&, ||, !

&,|    3&4

5.位运算符

&,|, <>>(右移一位相当于除以2)

3*4

6.扩展运算符

+=,-=,*=,/=,%=

7.三目运算符

(布尔表达式)?A:B

控制语句:

顺序结构

选择结构

a)         If

b)        If else

c)         If else if … else

d)        switch  多值选择  表达式:int或char/short/byte, 枚举

break问题

循环结构

a)         while  先判断后执行

b)        for

c)         do  while  先执行后判断

break: 强制终止整个循环

continue:结束本次循环,继续下一次!

面向对象基础:

对象的进化史

a)         基本数据类型阶段       数据少     无数据管理时代

b)        数组                数据多了,将同类型的数据放到一起     弱管理

c)         结构体          数据多了,数据复杂了。将不同类型的数据放到一起    强管理

d)        对象    数据多了、类型复杂了、行为复杂了。将不同类型的数据放到一起 超强管理

对象和类:

对象是具体的,类是抽象的。  类也是一个模版,通过类这个模版我们也可以new

对象。

定义类:

public[微软用户1]   class  类名[微软用户2]  {

//属性

private  数据类型  属性名;   //建议增加相应的getter、setter方法

//方法

//构造方法

}

构造方法:

方法名必须跟类名保持一致

无返回类型

通过new来调用

无参构造器问题:

a)         如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器

b)        如果我们自己定义了构造器,系统就不会为我们添加无参构造器

构造方法的第一句总是:super,即调用直接父类的构造方法。

a)         有继承关系的构造方法调用的顺序

方法的重载(Overload):

两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)

返回值不同,构成重载吗?  No

形参名称不同,构成重在吗?  No

this:

普通方法中,调用本方法的对象。

构造方法中,正要初始化的对象。

还可以用来,调用其他的构造方法

super:

static:

用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类。通过类名即可调用。实际存储于方法区中。

package:

package必须位于非注释行第一句。

包名:域名到这写

import:

引入外部的类

Import  static :导入类的静态属性

final:

修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)

修饰方法:不能被重写

修饰类: 不能被继承

面向对象的三大特征:

封装

通过private、default 、protected、public关键字实现属性或方法的封装。

“高内聚,低耦合”

继承

通过extends 。两个好处:

代码重用

通过继承实现对现实世界更加准确的建模

类只有单继承,没有像C++那样的多继承

方法重写(Override)的要点:

=:方法名保持一致

>=: 子类权限修饰符可以大于等于父类的。

<=, <=: 子类的返回值类型小于等于父类的类型。 子类声明异常类型不能超过父类的类型。

Object类:

1.是我们所有类的根基类

2.toString

3.equals、hashcode

4.wait、notify、notifyAll

多态(polymorphism)

三个必要条件:继承、方法的重写、父类引用指向子类对象

动态绑定、静态绑定:

抽象类:

包含抽象方法[微软用户3] 的类,一定是抽象类。

抽象类不能被new。

抽象类可以包含:普通方法、成员变量、构造方法。

接口:

interface

类实现接口:implements    可以实现多个接口

接口可以多继承

接口定义的一组规范!实现现实世界中这样的逻辑::如果你是…则必须能…

内存机制:

存放局部变量

不可以被多个线程共享

空间连续,速度快

存放对象

可以被多个线程共享

空间不连续,速度慢。但是灵活

方法区

存放类的信息:代码、静态变量、字符串常量等

可以被多个线程共享

空间不连续,速度慢。但是灵活

垃圾回收器(GC   Garbage  Collection):

程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收。

finallize:一般也不用的调

[微软用户1]public class类名需要跟我们文件名相同

[微软用户3]抽象方法必须被子类重写!

转载地址:https://blog.csdn.net/weixin_29306261/article/details/114878608 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:adaboost算法java_Boosting / AdaBoost —— 多级火箭助推
下一篇:java程序中语句隔开_JAVA程序设计复习二

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月26日 01时09分36秒