Java学习笔记——基础知识(数据与标识符)

学习目标:

掌握Java基本类型与基本数据类型转换


学习内容:

1、 Java注释
2、 Java标识符
3、 变量
4、 Java基本数据类型
5、基本数据类型转换


Java代码中的注释

从软件工程的角度上说,一个源程序中20%-30%的编码量为注释是合理的;如果不写注释是不建议

Java语法中提供了3种注释:注释是供程序员阅读的,用于对代码进行说明,从而避免需要了解方法的功能时,还需要进行代码阅读的限制,偶尔用于开发中,阻止一段代码的执行。注释在代码编译时会自动被编译器所忽略

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

常见的开发工具:

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

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

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

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

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

Java标识符

一定要遵守最基本的编程规范,目前讲解的规范按照SUN并参考ali的规范进行定义,入职后记得就近原则

给编程中的要素进行命名的规则,赋予变量、类或方法的名称。变量、函数、类和对象的名称都是标识符,程序员需要标识和使用的东西都需要标识符

  • 标识符可从一个字母(Unicode编码字符集)、下划线_或美元符号$开始,随后也可跟数字、字母、下划线或美元符号
  • 命名方式合法,因为这里的字母采用的是Unicode编码字符集中的字母,全世界范围内的语言都基本提供支持
  • 标识符是区分大小写,没有长度限制,可以为标识符取任意长度的名字
    有关关键字值得我们注意的地方:不允许使用关键字或者保留字

关键字就是在语法中具备特殊含义的单词;保留字就是没有在语法中定义特殊含义,但是不允许用户使用的单词

true、false和null为小写,而不是象在C++语言中那样为大写。严格地讲,它们不是关键字而是文字。然而,这种区别是理论上的

goto和const不是Java编程语言中使用的关键字,但是这两个单词属于保留字

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

  • 一般较大的公司中都有自己的规范,如果没有建议采用ali发布的ali的规范或者采用sun的规范

包采用域名反转的方式,全部小写,用点分开
类和接口 使用名词,首字母大写,例如ChinaPerson
方法 一般动词,首字母小写,大写字母分词,例如pickUp
变量 首字母小写,大写字母分词,例如u


变量

变量是在内存中具体存储位置的名称。变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域三个部分

  • Java是一种强类型编程语言,也就是说定义变量时必须指定对应的数据类型
  • 数据类型指明变量或表达式的状态和行为,数据类型决定了数的取值范围和运算符号
  • 作用域决定了变量名称的有效范围,Java要求变量必须先声明后使用

JAVA是强类型语言

  • 每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的。而且一旦定义则类型不能修
  • Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的

    例如:在c语言中可以将整数赋值给boolean类型,但是在java中boolean类型和数值类型没有任何关系
    任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正过来

在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

当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型转换

当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转换运算。显示转换格式为: (目标类型名)要转换的值;

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

		byte a=54;
		int b=a;//自动转化
		//-----------
		int c=54;
		byte d=c;//无法转化,产生报错
>	(byte)255 == -1//超出范围
	(byte)0x5634 == 0x34//超出范围,窄化操作

(int)23.7 == 23//精度损失
(int)-45.89f == -45//精度损失
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值