2020-10-29学习收获

2020/10/29 JavaSE8-02 授课02

回顾

核心概念

JDK:java开发工具箱    JRE:java运行时环境     JVM:Java虚拟机  JVM-java virtual machine在真实机器中用软件模拟实现的一种想象机器。JVM虚拟机将java字节码 程序翻译成机器语言。然后由计算机执行 JRE-java运行环境,是由JVM和java platform核心类以及相关支撑文件组成。Java的开发平台JDK是开发人员用来构建Java应用程序的软件包,它包括:Java虚拟机(JVM)、 Java编译器(javac)、Java归档(jar)实用程序、Java文档(javadoc)实用程序等 所谓的Java运行环境JRE是JDK的子集,包括JVM、运行时类库和执行Java字节码所需要的 Java应用程序启动器,但省略了Java编译器等开发工具。如果只需要运行Java而不需要开发 Java程序,则不需要完全安装JDK,只选择安装JRE即可

使用Java API文档: ---帮助手册

  • API:应用编程接口
  • @author指定程序的作者
  • @version指定源文件的版本
  • @param方法的参数说明信息
  • @return方法的返回值说明信息
  • @see用于指定参考的内容
  • @exception抛出异常的类型
  • @throws抛出的异常,和@exception同义

Java代码中的注释

从软件工程的角度上说,一个源程序中20%-30%的编码量为注释是合理的;如果不写注释是不建议的。Java语法中提供了3种注释:注释是供程序员阅读的,用于对代码进行说明,从而避免需要了解方法的功能时,还需要进行代码阅读的限制,偶尔用于开发中,阻止一段代码的执行。注释在代码编译时会自 动被编译器所忽略

  • // 单行注释
  • /* 多行注释 */
  • /** 文档注释 */ 可以通过javadoc命令生成html文档

常见的开发工具

  • javac编译器 Hello.java--->Hello.class
  • java解释器 代码的解释执行
  • javadoc文档生成器 在java源程序中通过@...添加文档注释,然后再生成html格式的文档,用于团队的合作开发

源文件布局 .java 一个Java源文件可包含三个“顶级”要素

  • 一个包声明(可选) package com.yan; 命名空间
  • 任意数量的导入语句 import java.io.*; 引入其它定义的程序
  • 类和接口声明 [public] class A{}

三要素必须以上述顺序出现。即,任何导入语句出现在所有类定义之前;如果使用包声明,则包声明必 须出现在类和导入语句之前。每个Java的编译单元可包含多个类或接口,但是每个编译单元最多只能有 一个类或者接口是公共的。

  • 一个公共的类存放在同名称的文件中,一个文件可以存放多个类定义,但是只能有一个和文件名称 相同的public class。
  • Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。同时也允许将多行 代码写在一行上,注意使用分号隔开;所有的语句末尾以分号;收尾。
  • 一般建议使用通用习惯的格式存放文件。先随便格式进行定义,然后使用【ctrl+shift+F】快捷键对 代码进行格式化处理。

常见的编程错误

  • 目前的要求:将所有的程序都必须写在方法内部,不能写在方法外 (目前要求)。
  • 使用临时变量,Java 要求必须是先定义后使用,必须是先赋初值后使用。

Java 标识符

  • 一定要遵守最基本的编程规范,目前讲解的规范按照SUN并参考ali的规范进行定义,入职后记得就近原则。给编程中的要素进行命名的规则,赋予变量、类或方法的名称。变量、函数、类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符。
  • 标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、 下划线或美元符号。
  • 命名方式合法,因为这里的字母采用的是Unicode编码字符集中的字母,全世界范围内的语言都基,本提供支持。
  • 标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字
  • 有关关键字值得我们注意的地方:不允许使用关键字或者保留字
  1. 关键字就是在语法中具备特殊含义的单词;保留字就是没有在语法中定义特殊含义,但是不允许用户使用的单词
  2. true、false和null为小写,而不是象在C++语言中那样为大写。严格地讲,它们不是关键字, 而是文字。然而,这种区别是理论上的
  3. goto和const不是Java编程语言中使用的关键字,但是这两个单词属于保留字

Java命名规范:SUN一般要求见名知意

  • 一般较大的公司中都有自己的规范,如果没有建议采用ali发布的ali的规范或者采用sun的规范
  1. 包采用域名反转的方式,全部小写,用点分开
  2. 类和接口 使用名词,首字母大写,例如ChinaPerson
  3. 方法,一般动词,首字母小写,大写字母分词,例如pickUp
  4. 变量 首字母小写,大写字母分词,例如userName
  5. 常量 全大写,以_分词,例如SEX_A

变量

  • 变量是在内存中具体存储位置的名称。变量是Java程序中的基本存储单元,它的定义包括变量名、变量、类型和作用域三个部分
  • Java是一种强类型编程语言,也就是说定义变量时必须指定对应的数据类型
  • 数据类型指明变量或表达式的状态和行为,数据类型决定了数的取值范围和运算符号
  • 作用域决定了变量名称的有效范围,Java要求变量必须先声明后使用

JAVA是强类型语言

  • 每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的。而且一旦定义则类型不能修改
  • Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的
  1. 例如:在c语言中可以将整数赋值给boolean类型,但是在java中boolean类型和数值类型没有任何关系
  2. 任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来

在Java语言数据类型可以分为两大类:基本类型和引用类型

  • 基本类型是指不能再分解的数据类型,其数据在函数的调用中是以传值方式工作的
  • 简单数据类型代表单值,而不是复杂的对象

Java是完全面向对象的,但简单数据类型却不是,它们类似于其他大多数非面向对象语言中的简单数据类型。这样做的原因是出于效率方面的考虑。在面向对象中引入简单数据类型不会对执行效率产生太多的影响。

基本类型

Java编程语言有八个原始数据类型,可分为4种整型、浮点数、字符型数据和布尔型数据,*不会随着计算机类型而变化的

  • Java是针对于VM进行编程,不是针对特定的物理设备,所以不会因为32位系统还是64位系统而有所区别
  • Java开放源代码,但是VM不开发源代码,采用的是C实现,针对不同的物理设备需要安装对应的VM
  • 对于临时变量必须先定义后使用,必须先赋初值后使用
  • 数据类型名 变量名【=初值】;

整数类型

  • 整数类 byte,short,int,long 补码存储
  • byte字节整数 1B -128到127
  • short短整型 2B -32768到32767
  • int 整型 4B -2147483648到2147483647
  • long 长整型 8B -9223372036854775808到9223372036854775807

所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。整数类型的文字可使用二进制、十进制、八进制和十六进制4种表示方式。

  • 二进制整数,以0b或者0B开头,例如0b1001001
  • 十进制整数。如123,-456,0
  • 八进制整数。以0开头,如0123表示十进制数83,-011表示十进制数-9
  • 十六进制整数。以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18

整数类缺省为int类型,如在其后有一个字母L表示一个long值。例如long k=123456789012345678L; 实际上末尾的L或者l都可以,但是一般不建议使用

浮点数类型

两种浮点类型float和double,浮点数无法准确存放,所以浮点数不能进行等值判断

  • float 4B 单精度浮点数 7-8有效数据 E38
  • double 8B 双精度浮点数 15-16有效数据 e308

解决方法是:在123.456后添加f或者F,表示是单精度浮点数。或者double dd=123.456; 系统默认浮点 数是double类型

如果一个数包括小数点或指数部分或者在数字后带有字母F或f(float)、D或d(double),则该数为浮、点数

表示浮点数有2种计法

  • 十进制数形式。由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0
  • 科学计数法形式。如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整 数。例如12.3e-5含义是12.3X10^-5

浮点数相等的判断

解决方法是:将两个值进行相减并求绝对值,如果绝对值小于某个值,则认为相等

字符类型

使用char类型可表示单个字符,字符是用单引号括起来的一个字符【强调:不能使用双引号,使用双引 号就是字符串类型】,这个字符可以是unicode编码字符集中的任意字符

Java中的字符型数据是16位(2B)无符号型数据,它表示Unicode集,而不仅仅是ASCII集。其范围为0~ 65535

  • Unicode所定义的国际化字符集能表示迄今为止人类语言的所有字符集,它要求使用16位的宽度表 示。没有负数的char
  • Unicode字符的使用对于英语、德语、西班牙语或法语的语言是有些低效,因为这些语言能够被包 含在8位内。但是为了程序的的可移植性和通用性,付出代价是很有必要的
  • 计算机处理字符类型时是把这些字符当成不同的整数来看待。因此。严格说,字符类型也算是整数类型的一种
  • 数字(48-57)<大写英文字母(65)<小写英文字母(97)

Java也提供转义字符,以反斜杠\开头,将其后的字符转变为另外的含义

  • \ddd 1到3位8进制数所表示的字符(ddd)
  • \uxxxx 1到4位16进制数所表示的字符(0123456789abcdef)
  • \’ 单引号字符
  • \" 双引号字符
  • \\ 反斜杠字符

注意:用双引号引用的文字,就是平时所说的字符串类型不是原始类型,而是一个类(class)String,它被用来表示字符序列

  • 字符本身符合Unicode标准,且上述char类型的转义字符适用于String
  • 可以把char当作整数数据来操作

逻辑类型

  • boolean数据类型有两种文字值:true真 和false假
  • 在Java编程语言中boolean类型只允许使用boolean值,在整数类型和boolean类型之间无转换计算

基本数据类型转换

  • 数据类型按精度(取值范围)从低到高排列顺序为:byte,short,char,int,long,float,double
  • 当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型转换
  • 当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换格式为: (目标类 型名)要转换的值;

需要注意:在大转小的转换过程中可能损失精度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值