栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础

前言

本文为对《Java编程思想》一书内容的总结,旨在加深自己对于java语言的特性和语法的了解。

第1章 对象导论

接口确定了某一特定对象所能发出的请求。但是,在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现。

Java用三个关键字在类的内部设定边界:public、private、protected。

复用具体实现:可以使用现有的类作为成员合成新的类,这种概念被称为组合。组合反映了"has-a"关系。

继承:Java不支持多继承,只保持单继承。在OOP中,程序采用了后期绑定的概念。当向对象发送消息时,被调用的代码直到运行时才能确定(判断具体是哪个类,基类还是派生类)。

Java将全部对象存储在堆中。每当想要创建新对象时就要使用new关键字来构造此对象的动态实例。(Java依然可以将确定值的简单类型存储在栈上)

在堆上创建对象,编译器就会对它的生命周期一无所知。不过Java提供了”垃圾回收器“来处理这个问题。

Java内置了异常处理,将异常视为一种对象,不会忽略异常。

第2章 一切都是对象

Java将一切都视为对象,不过操纵的标志符实际上是对象的一个“引用”。

一旦创建了一个引用,就希望它能与一个新的对象相关联。通常用new操作符来实现这一点。

Java对象存储位置:

栈:储存对象引用和直接简单变量(int、char等且非类成员变量的单独变量)

堆:储存对象

基本类型:boolean、char、byte、double、void等

其并非引用。这个变量直接储存值,放置在栈里。

对象的作用域:引用会随着作用域变化而消失,对象却将始终存在,因此需要垃圾回收器进行处理。回收器监视用new创建的所有对象,并将不会再被引用的对象释放以释放这些对象的内存空间。

名字可见性:java通过包名对不同文件的相同名字函数进行区分

static关键字

当声明一个事物是static时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建过某个类的任何对象,也可以直接通过类名访问其static方法或static域。

例如下面代码StaticTest不需要创建对象就可以直接调用static方法

创建多个对象时也会共享i的值

public class StaticTest {
    static int i=47;
    static void increment(){
        System.out.println("I++");
    }
}


public class hello {
    public static void main(String[] args){
        StaticTest.increment();
    }
}

 (可以直接System.out.println的原因是java创建项目时默认引入java.lang)

开发时使用javadoc不仅便于其他人接手代码,也可用于生成项目描述文件。

编码规则:首字母大写,多单词连续而无需下划线

第3章 操作符

对基本类型的赋值是很简单的。基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方。

对对象赋值的时候,情况发生了变化。对一个对象进行操作时,我们实际操作的是一个引用,因此如果对对象使用"c=d",那么c和d都将指向原本只有d指向的那个对象。

如果想修改对象的值,最好用c.a1=d.a1的形式以避免引用指向对象合一。

--a会先运算再生成值,a--会先生成值在运算。

int i=1;
System.out.println(i--);
//1
i=1;
System.out.println(--i);
//0

对于基础变量而言,==和!=比较的是值;对于对象而言,比较的则是对象引用。

如果想要比较对象,注意使用equals()

值得注意的是,string不是基本变量

java所有数据类型在不同机器的大小都是一样的,因此不像C那样需要sizeof()。

第4章 控制执行流程

Java并不支持goto语句,不过也有类似的跳转机制,比如continue label; break label等。

java简洁的foreach方法:

for(float f : iterator) {}

第5章 初始化与清理

许多C程序的错误都源于程序员忘记初始化变量。

Java引入了构造器概念。

构造器与类采用相同的名称,可以出现多个。

如果编程人员没有自己声明构造器的话,java会自动生成无参数默认构造器。

与之相似,java也支持通过不同参数列表对函数进行方法重载。

方法内部通过this指向当前对象。

static方法就是没有this的方法,不过static静态方法不应该多次出现。多次出现就需要考虑自己的设计是否合理了。

static变量存储在哪里,垃圾回收机制具体如何,有待后续看Java虚拟机深入理解。

可变参数列表:string... str表示一个长度不定的string iterator(可以理解为数组之类的)。

可以通过enum来更好使用switch等机制。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444927.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号