01_Java SE 基础
java8种基础数据类型

java8种基础数据类型
Java 8(或称为Java SE 8)中定义了8种基本数据类型,它们是:
1.byte:一个byte类型的变量占用8位(1字节)的存储空间,其值范围从-128到127。
2.short:一个short类型的变量占用16位(2字节)的存储空间,其值范围从-32768到32767。
3.int:一个int类型的变量占用32位(4字节)的存储空间,其值范围从-2147483648到2147483647。
4.long:一个long类型的变量占用64位(8字节)的存储空间,其值范围从-9223372036854775808到9223372036854775807。
5.float:一个float类型的变量占用32位(4字节)的存储空间,用于表示单精度浮点数,其值范围取决于具体的实现。
6.double:一个double类型的变量占用64位(8字节)的存储空间,用于表示双精度浮点数,其值范围取决于具体的实现。
7.char:一个char类型的变量占用16位(2字节)的存储空间,用于表示Unicode字符,其值范围从'\u0000'(即0)到'\uffff'(即65535)。
8.boolean:一个boolean类型的变量占用1位(1/8字节)的存储空间,只有两个可能的值:true和false。
这些基本数据类型在Java中是不可变的,这意味着一旦为这些类型的变量分配了值,就不能更改该值。
Java程序设计——01简介

赵志崑
感谢!
本课程全部ppt和源代码可以从“网上课堂”下 载
赵志崑
计算机科学与技术学院 赵志崑 zhaozk@
Java语言简介
• Java语言是由Sun公司创造和发展的一门程序设计语言,在 程序设计语言家族中占有重要地位。 • 使用Java语言的Java平台,应用领域非常广泛,覆盖了桌 面、 Internet、企业、嵌入式设备、移动设备等。
Java语言的特点
• 简单:语法类似C++;基础解释器和类40KB。 • 面向对象:一切皆是对象。 • 可移植性、中立体系结构:一致的数据类型大小,一致的 界面风格,不依赖于特定处理器和操作系统。 • 解释型:Java字节码文件在虚拟机上解释执行。 • 动态性:动态类加载、反射机制。 • 分布式:易于使用TCP/IP协议、URL资源、远程方法调用 RMI。 • 多线程:多线程处理非常简单。 • 高性能:即时编译—JIT。 • 健壮性:编译器早期错误检查、虚拟机后期动态检查。 • 安全:异常处理机制和安全机制,可以防止堆栈溢出、访 问进程空间外内存、Applet访问本地文件。 赵志崑
赵志崑
授课方式
• 课堂讲解
– 语言的原理与机制。 – 代表性的例子。
• 课后作业
– 每部分一道程序设计题目,上机完成。 – 实验课上随机抽查程序完成情况。 – 重点题目要求写出实验报告,全体上交。
• 其它
– 课后可在教师休息室答疑,有问题和建议可通过 Email联系。
赵志崑
考核方式
• 平时成绩(10%)
Base Class Library
Common Language Runtime Windows COM+ Services 赵志崑
java知识点总结

D、不确定
10、数组的长度: 数组的长度用其属性值. Length表示。 对一维数组,数组的长度是数组中元素的个数 对二维数组,数组的长度是其含有的一维数组的个数。 float a[] = new float[12]; a.length的值12 int x[ ][ ]=new int[3][6] x.length的值为 3。
第1章 Java 入门 Java入门
计算机工程学院
第一章
• 一、与平台无关性
Java 应用程序编译后形成的字节码CLASS文件不是直接在操作系统或者 CPU上直接运行,而是字节码由Java虚拟机负责解释运行。因此Java编写的应 用程序在运行时与平台无关。 二、 Java三种平台简介 Java平台主要分为三个版本:JavaSE、JavaEE 、 JavaME • • • Java SE(标准版或Java 标准平台) 是Java技术的核心和基础 Java EE(企业版企业平台) Java ME(为Java微型版或Java小型平台)为在移动设备和嵌入式设备上运行 应用程序提供一个健壮且灵活的环境。
• Java SE是基础
计算机工程学院
第一章
三、 系统环境path的设置: (1) 设 置 环 境 变 量 path , 可 单 击 该 变 量 进 行 编 辑 操 作 , 将 需 要 的 值 (D:\jdk7\bin)加入即可 。 path= D:\jdk7\bin; (2)设置环境classpath classpath=D:\jdk7\jre\lib\rt.jar;.;
数组的实体
数组变量boy中存放着数组在内存中单元(实体)的首地址。 计算机工程学院
第二章
9、2个相同类型的数组具有相同的引用,那么他们具有完全相同的元素(实体)
java语言程序设计基础篇(第八版)课件_完整版

Java语言程序设计基础篇(第八版)课件_完整版第一章 Java语言概述Java是一种跨平台的编程语言,可在各种操作系统上运行。
它是一种面向对象的语言,具有高度的可移植性和可扩展性。
本章将介绍Java语言的特点、发展史和应用领域。
同时,还会介绍编写Java程序的开发环境和运行环境。
1.1 Java语言特点Java语言具有以下特点:•简单易学、易于使用•面向对象的设计思想•可移植性强•安全性高•高性能1.2 Java语言的发展史Java最早由Sun Microsystems于1995年发布。
自发布以来,Java已经逐渐成为全球范围内最流行的编程语言之一。
Java的发展历程经历了以下几个版本:•JDK 1.0(1996年)•JDK 1.1(1997年)•J2SE 1.2(1998年)•J2SE 1.3(2000年)•J2SE 1.4(2002年)•J2SE 5.0(2004年)•Java SE 6(2006年)•Java SE 7(2011年)•Java SE 8(2014年)1.3 Java语言的应用领域Java语言的应用范围很广,它可以用于开发各种应用程序,如:•企业级应用软件•移动应用程序•互联网应用程序•游戏开发•操作系统1.4 Java语言的开发环境Java语言的标准开发环境包括以下几个部分:•JDK(Java Development Kit,Java开发工具包)•Eclipse、NetBeans等集成开发环境1.5 Java语言的运行环境Java程序在运行时需要Java虚拟机(JVM)的支持,JVM可以在各种操作系统上运行。
因此,Java程序的可移植性非常强。
同时,JVM还提供了一些优化,可以使Java程序运行得更快。
第二章 Java编程基础2.1 程序结构Java程序的基本结构包括以下几个部分:•包声明•导入语句•类声明2.2 变量和常量Java中的变量有以下几种类型:•整型•浮点型•字符型•布尔型Java中的常量有以下几种类型:•整型常量•浮点型常量•字符型常量•布尔型常量2.3 运算符Java中的运算符包括以下几种类型:•算术运算符•关系运算符•逻辑运算符•位运算符•赋值运算符2.4 流程控制语句Java中的流程控制语句有以下几种类型:•if语句•switch语句•for语句•while语句•do…while语句第三章 Java面向对象编程基础3.1 面向对象编程概述面向对象编程是一种编程范式,它通过封装、继承和多态,使程序结构更清晰、更易于维护。
Java 基础 第1讲(课时2)

提示:虽然安装路 径可以随意指定,建议 ①下载JDK自解压安装 安装在便于访问的地方, /javase/downloads/index.jsp 路径深度不宜过深。 或
/zh_CN
②双击安装包文件开始安装JDK ③环境变量设定
/* * 功能:输出 Hello Java! 字符串 * @author 冉孟廷 * @version 1.0 */
public class HelloJava { public static void main(String args[ ]){ System.out.println("Hello Java!"); } }
Java源程序 编译器 字节码文件.class
JVM Windows 操作环境
JVM Unix 操作环境
JVM Mac 操作环境
主要内容
一、引 入 二、Java的特点
三、Java开发环境的构建 四、Java应用程序开发过程 五、Java应用程序实例 六、小结
七、课程实训
三、Java开发环境的构建 1)JDK简介 2)JDK安装
Java 程序设计
第一讲 Java语言概述
2007级JAVA实验班教学课件
---主讲:
冉孟廷
主要内容
一、引 入 二、Java的特点 三、Java开发环境的构建 四、Java应用程序开发过程 五、Java应用程序实例 六、小结
七、课程实训
一、引 入
每当我们接触一门新的学科通常都 是从了解它的历史入手,Java语言的出现
Java 是解释型语言, 在JDK中, 四、Java 应用程序开发过程
运行过程:载入、代码校验、解释执行。 如:java 源程序名.class
JavaSE考试题参考答案

JavaSE考试题(时间150分钟)一.选择题(75分)1.在Java中负责对字节码解释执行的是( B )A.垃圾回收器B.虚拟机C.编译器D.多线程机制2.BufferedReader的父类是( B )A.FileReaderB.ReaderC.PipedReaderD.InputStreamReader3.在读字符文件Post.dat时,使用该文件作为参数的类( A )A.BufferedReaderB.DataInputStreamC.DataOutputStreamD.FileInputStream4.下列不是InputStream子类的是( C )A.FileInputStreamB.ObjectInputStreamC.CharInputStreamD.ZipInputStream5.下列方法中可以用来创建一个新线程的是( D )A.实现ng.Runnable接口并重写start()方法B.实现ng.Runnable接口并重写run()方法C.继承ng.Thread类并重写start()方法D.继承ng.Thread类并重写run()方法6.当启动Applet程序时,首先调用的方法是( B )A.stop()B.init()C.start()D.destroy()7.序列化一个类时,如果要隐藏某个成员,使之在反序列化时不能看到搞成员的真实数据,应当使用的关键字是( C )A.hiddernB.privateC.transientD.destroy8.将键值对(key--value)保存到映射(Map)对象中的方法是( B )。
A.add(Object key,Object value)B.put(Object key,Object value)C.insert(Object key,Object value)D.get(Object key,Object value)9. 一个java Application 运行后,在系统中是作为一个( B )A.线程B.进程C.进程或线程D.不可预知10.下列关于线程调度的叙述中,错误的是:( D)A.调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会B.调用线程的yield()方法,只会使与当前线程相同优先级的线程获得运行机会C.当有比当前线程优先级高的线程出现时,高优先级的线程将抢占CPU并运行D.具有相同优先级的多个线程的调度一定是分时的.11.下列关于线程优先级别的说法中,正确的是( C)A.线程的优先级是不能改变的B.线程的优先级在创建线程时设定C.在创建线程后的任何时候都可以设置D.B,C12.实现一个线程的创建方法有几种( B )A.一种B.二种C.三种D.四种13.下列关于泛型的说法,错误的是( B )A、泛型是一种参数化类型B、可以取代继承机制。
java ppt课件
CI/CD是现代软件开发的必备技能。Java有许多 成熟的CI/CD工具和框架,如Jenkins、Docker等 ,可以帮助开发者实现自动化测试、自动化构建 和自动化部署。
微服务架构
微服务架构是近年来的一种热门技术趋势。Java 凭借其稳定性和性能优势,在微服务架构中有着 广泛的应用。通过使用Spring Boot等框架,开发 者可以更轻松地构建和部署微服务。
丰富的API库:Java语言 拥有庞大的 API(Application Programming Interface)库,涵盖了从 数据结构、数学函数、 图形和声音处理到数据 库连接等各个方面。这 使得Java语言可以方便 地调用各种底层功能, 大大提高了开发效率。
安全性:Java语言具有 严格的数据类型检查和 异常处理机制,可以有 效防止程序出现错误。 此外,Java的内存管理 也是自动的,可以避免 内存泄漏等问题。
Web开发
Java的Web开发框架如Spring、Struts和Hibernate等提 供了强大的功能,使得Java在Web开发领域也具有广泛 的应用。
大数据开发
Java在大数据领域也有广泛的应用,例如使用Hadoop和 Spark等框架进行数据处理和分析。
02
CATALOGUE
java语言基础知识
06
CATALOGUE
java语言的性能优化与安全防护
java程序的性能优化技巧
01
02
03
04
代码优化
编写高效、简洁的代码,避免 冗余和重复,减少不必要的计
算和操作。
内存管理
合理分配和释放内存,避免内 存泄漏和溢出,提高内存使用
效率。
多线程编程
韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)
java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。
不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件 (.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释//单行注释/* */多行注释java内容介绍java编程可以分成三个方向:1、java se (j2se)桌面开发 java中的基础中的基础2、java ee (j2ee)web开发3、java me (j2me)手机开发java se课程介绍java面向对象编程(基础)java图开界面开发java数据库编程java文件io流编程java网络编程java多线程编程java ee基础1java面向对象编程--数据库编程-->java sejava 基础2html--css--javascript-->div+cssjava ee中级部分Servlet--Jsp-->mvc模式java ee高级部分Struts--Ejb--Hibernate--Spring--Ajax(ext,dw2)-->ssh框架java之父gosling1990 sun启动绿色计划1 | 4451992 创建oak语言-->java1994 gosling参加硅谷大会演示java功能,震惊世界1995 sun正式发布java第一个版本,目前最新是jdk7.0java开发工具记事本、(jcreator、jbuilder退出舞台了)、netbean、eclipse如何选择开发工具先选择记事本,对java有一定了解后再使用eclipse高级开发工具为什么呢?1、更深刻的理解java技术,培养代码感2、有利于公司面试java语言的特点1、java语言是简单的2、java语言是面向对象的3、java语言是跨平台(操作系统)的[即一次编译,到处运行]4、java是高性能的java第一个程序hello.java运行java程序要安装和配置jdkjdk是什么?1、jdk全称java dvevlopment kit中文java开发工具包2、jdk是sun公司开发的3、jdk包括jre(java runtime envirnment)java运行环境、一堆java工具和java基础的类库(类共3600左右,常用类在150个左右)4、可以在下载**开发安装jdk,用户执行需要安装jre配置JDK添加环境变量即可windows下配置jdk在计算机属性--高级设置--环境变量--添加PATH将JDK所在路径指定即可。
java课件ppt
Lock接口和ReentrantLock类,提供 了比synchronized更灵活的线程同步 机制,可以实现更复杂的同步操作。
感谢您的观看
THANKS
while语句
当条件满足时重复执行一段代码。
for语句
指定循环次数重复执行一段代码。
函数
函数定义
定义一个具有特定功能的代码块,并为其命 名。
函数参数
传递给函数的值,用于在函数内部使用。
函数返回值
函数执行完毕后返回的结果。
函数调用
使用函数名和参数调用函数,并执行其功能 。
03
Java面向对象编程
面向对象的概念
throw语句用于手动抛出异常,可以在方法中使用throw语句 抛出异常,然后在调用该方法的方法中捕获并处理该异常。
06
Java多线程编程
线程的概念
线程具有5种状态:新建、就绪、运 行、阻塞、终止。
线程具有两个基本属性:优先级和状 态。
线程的创建和启动
01
继承Thread类并重写run()方法,创建线程对象后调用 start()方法启动线程。
异常的分类
运行时异常
运行时异常是那些可能在编译时无法预料到的异常,例如空指针异常(NullPointerException)、数组越界异 常(ArrayIndexOutOfBoundsException)等。
检查异常
检查异常是那些在编译时就能够被检查出来的异常,例如文件未找到异常(FileNotFoundException)、网络 连接中断异常(SocketException)等。
02
实现Runnable接口并重写run()方法,将Runnable对象传递给 Thread构造函数创建线程对象,然后调用start()方法启动线程。
大数据学习路线推荐
1 Java基础:视频方面:推荐《北大青鸟佳音校区》。
学习hadoop不需要过度的深入,java学习到javase,在Java虚拟机的内存管理、以及多线程、线程池、设计模式、并行化多多理解实践即可。
书籍方面:推荐《java开发实战经典》2 Linux基础:视频方面:(1)北大青鸟佳音校区的高薪Linux视频课程-Linux 入门、(2)北大青鸟佳音校区的新版Linux视频教程、(3)北大青鸟佳音校区的讲解鸟哥Linux基础+私房菜、(4)北大青鸟佳音校区的Linux。
看的过程中,不可只看不同步操作,这是最危险的一件事!不需全部看完。
如:基本的Linux操作系统官网下载、安装(命令行界面和图形界面)、基本命令、网络配置、快照、VM tools工具安装、虚拟机的菜单熟悉等等。
这是必须要首先完成的。
之后,可回过来再根据需要使用到哪些,再来学习即可。
当作工具书!书籍方面:(1)《linux私房菜》,(2)之后,进一步可以看书籍《服务架设篇》。
(3)Linux随身指南(4)Linux运维系统学习只要多多实践,学习linux并不枯燥。
3 hadoop书籍:(1)《Hadoop实战 (第1版) 》、《Hadoop实战 (第2版) 》(2)《hadoop definitive guide 》,中文书名是《Hadoop权威指南(第1版)》,《Hadoop权威指南 (第2版) 》,《Hadoop权威指南(第3版)》,当然现在应该是第4版了。
(3)Hadoop技术内幕:《深入解析Hadoop common和HDFS架构设计与实现原理》(4)hadoop技术内幕:《深入解析YARN架构设计与实现原理》(5)Hadoop技术内幕:《深入理解MapReduce架构设计与实现原理》(5)《Hadoop in Action》,中文书名是《Hadoop实战》,(6)《Hadoop应用开发技术详解》(7)《Hadoop 核心技术》平常多看看北大青鸟佳音校区的官网,尽量多学习计算机方面的单词,对后续学习帮助极大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA SE Lesson 11. 类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念。
先有类,然后由类来生成对象(Object)。
对象又叫做实例(Instance)。
2. 类由两大部分构成:属性以及方法。
属性一般用名词来表示,方法一般用动词来表示。
3. 如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,换句话说,定义的多个类可以都不是public的。
4. 在Java中进行方法的参数传递时,无论传递的是原生数据类型还是引用类型,参数传递方式统一是传值(pass by value)。
Java中没有传引用(pass by reference)的概念。
5. 方法重载(Overload)。
表示两个或多个方法名字相同,但方法参数不同。
方法参数不同有两层含义:1)参数个数不同。
2)参数类型不同。
注意:方法的返回值对重载没有任何影响。
6. 构造方法重载:只需看参数即可。
如果想在一个构造方法中调用另外一个构造方法,那么可以使用this()的方式调用,this()括号中的参数表示目标构造方法的参数。
this()必须要作为构造方法的第一条语句,换句话说,this()之前不能有任何可执行的代码。
7. 继承(Inheritence):Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类【基类,base class】,继承的类叫做子类),Java 中的继承使用extends 关键字。
8. 当生成子类对象时,Java 默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象。
接下来,再去调用子类的构造方法,生成子类的对象。
【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。
比如说:没有父亲,就没有孩子】。
9. super 关键字:super 表示对父类对象的引用。
10. 如果子类使用super()显式调用父类的某个构造方法,那么在执行的时候就会寻找与super()所对应的构造方法而不会再去寻找父类的不带参数的构造方法。
与this 一样,super 也必须要作为构造方法的第一条执行语句,前面不能有其他可执行语句。
11. 关于继承的3 点:a) 父类有的,子类也有b) 父类没有的,子类可以增加c) 父类有的,子类可以改变12. 关于继承的注意事项a) 构造方法不能被继承b) 方法和属性可以被继承c) 子类的构造方法隐式地调用父类的不带参数的构造方法d) 当父类没有不带参数的构造方法时,子类需要使用super 来显式地调用父类的构造方法,super指的是对父类的引用e) super关键字必须是构造方法中的第一行语句。
13. 方法重写(Override):又叫做覆写,子类与父类的方法返回类型一样、方法名称一样,参数一样,这样我们说子类与父类的方法构成了重写关系。
14. 方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个方法。
重写发生在父类与子类之间。
15. 当两个方法形成重写关系时,可以在子类方法中通过super.run()形式调用父类的run()方法,其中super.run()不必放在第一行语句,因此此时父类对象已经构造完毕,先调用父类的run()方法还是先调用子类的run()方法是根据程序的逻辑决定的。
16. 在定义一个类的时候,如果没有显式指定该类的父类,那么该类就会继承于ng.Object类(JDK提供的一个类,Object类是Java中所有类的直接或间接父类)。
17. 多态(Polymorphism):我们说子类就是父类(玫瑰是花,男人是人),因此多态的意思就是:父类型的引用可以指向子类的对象。
Java SE Lesson 21. 多态:父类型的引用可以指向子类型的对象。
2. Parent p = new Child();当使用多态方式调用方法时,首先检查父类中是否有sing()方法,如果没有则编译错误;如果有,再去调用子类的sing()方法。
3. 一共有两种类型的强制类型转换:a) 向上类型转换(upcast):比如说将Cat类型转换为Animal类型,即将子类型转换为父类型。
对于向上类型转换,不需要显式指定。
b) 向下类型转换(downcast):比如将Animal类型转换为Cat类型。
即将父类型转换为子类型。
对于向下类型转换,必须要显式指定(必须要使用强制类型转换)。
4. 抽象类(abstract class):使用了abstract关键字所修饰的类叫做抽象类。
抽象类无法实例化,也就是说,不能new出来一个抽象类的对象(实例)。
5. 抽象方法(abstract method):使用abstract关键字所修饰的方法叫做抽象方法。
抽象方法需要定义在抽象类中。
相对于抽象方法,之前所定义的方法叫做具体方法(有声明,有实现)。
6. 如果一个类包含了抽象方法,那么这个类一定是抽象类。
7. 如果某个类是抽象类,那么该类可以包含具体方法(有声明、有实现)。
8. 如果一个类中包含了抽象方法,那么这个类一定要声明成abstract class,也就是说,该类一定是抽象类;反之,如果某个类是抽象类,那么该类既可以包含抽象方法,也可以包含具体方法。
9. 无论何种情况,只要一个类是抽象类,那么这个类就无法实例化。
10. 在子类继承父类(父类是个抽象类)的情况下,那么该子类必须要实现父类中所定义的所有抽象方法;否则,该子类需要声明成一个abstract class。
11. 接口(interface):接口的地位等同于class,接口中的所有方法都是抽象方法。
在声明接口中的方法时,可以使用abstract关键字,也可以不使用。
通常情况下,都会省略掉abstract关键字。
12. 可以将接口看作是特殊的抽象类(抽象类中可以有具体方法,也可以有抽象方法,而接口中只能有抽象方法,不能有具体方法)。
13. 类可以实现接口。
实现使用关键字implements表示,代表了某个类实现了某个接口。
14. 一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法。
如果该类是个抽象类,那么就无需实现接口中的方法了。
15. Java是单继承的,也就是说某个类只能有唯一一个父类;一个类可以实现多个接口,多个接口之间使用逗号分隔。
16. 多态:所谓多态,就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。
关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。
17. static关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类(后面的课程讲)18. static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量;一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之发生变化。
如果一个成员变量是static的,那么我们可以通过类名.成员变量名的方式来使用它(推荐使用这种方式)。
19. static修饰方法:static修饰的方法叫做静态方法。
对于静态方法来说,可以使用类名.方法名的方式来访问。
20. 静态方法只能继承,不能重写(Override)。
21. final关键字:final可以修饰属性、方法、类。
22. final修饰类:当一个类被final所修饰时,表示该类是一个终态类,即不能被继承。
23. final修饰方法:当一个方法被final所修饰时,表示该方法是一个终态方法,即不能被重写(Override)。
24. final修饰属性:当一个属性被final所修饰时,表示该属性不能被改写。
25. 当final修饰一个原生数据类型时,表示该原生数据类型的值不能发生变化(比如说不能从10变为20);如果final修饰一个引用类型时,表示该引用类型不能再指向其他对象了,但该引用所指向的对象的内容是可以发生变化的。
26. 对于final类型成员变量,一般来说有两种赋初值方式:a) 在声明final类型的成员变量时就赋上初值b) 在声明final类型的成员变量时不赋初值,但在类的所有构造方法中都为其赋上初值。
27. static代码块:静态代码块。
静态代码块的作用也是完成一些初始化工作。
首先执行静态代码块,然后执行构造方法。
静态代码块在类被加载的时候执行,而构造方法是在生成对象的时候执行;要想调用某个类来生成对象,首先需要将类加载到Java虚拟机上(JVM),然后由JVM加载这个类来生成对象。
28. 类的静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每次生成一个对象的时候都会调用类的构造方法,所以new一次就会调用构造方法一次。
29. 如果继承体系中既有构造方法,又有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层类的构造方法,一直执行到最底层类的构造方法。
注意:静态代码块只会执行一次。
30. 不能在静态方法中访问非静态成员变量;可以在静态方法中访问静态的成员变量。
可以在非静态方法中访问静态的成员变量。
31. 总结:静态的只能访问静态的;非静态的可以访问一切。
32. 不能在静态方法中使用this关键字。
Java SE Lesson 31. 接口中所声明的方法都是抽象方法。
接口中的方法都是public的。
2. 接口中也可以定义成员变量。
接口中的成员变量都是public、final、static的。
3. 一个类不能既是final,又是abstract的。
因为abstract的主要目的是定义一种约定,让子类去实现这种约定,而final表示该类不能被继承,这样abstract希望该类可以被继承而final明确说明该类不能被继承,两者矛盾。
因此一个类不能既是final的,又是abstract的。
4. Design Pattern(设计模式)。
单例模式(Singleton):表示一个类只会生成唯一的一个对象。
5. 包(package)。
用于将完成不同功能的类分门别类,放在不同的目录(包)下。
包的命名规则:将公司域名反转作为包名。
,com.shengsiyuan(包名),对于包名:每个字母都需要小写。
如果定义类的时候没有使用package,那么Java就认为我们所定义的类位于默认包里面(default package)。
6. 编译带有package声明的Java源文件有两种方式:a) 直接编译,然后根据类中所定义的包名,逐一手工建立目录结构,最后将生成的class文件放到该目录结构中(很少使用,比较麻烦)。
b) 使用编译参数–d,方式为javac –d . 源文件.java,这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构。