黑马程序员_java基础下
来源:互联网 发布:酷云eye收视数据猎场 编辑:程序博客网 时间:2024/05/13 21:04
-----------android培训、java培训、期待与您交流! ------------
Java语言基础:
Java源程序代码中的字符被划分为一系列的标记(token)。Java编译器可识别五种标记:标识符、关键字、字面量、运算符以及特殊分隔符。
注释以及诸如空格、制表符、换行符,都不属于标识之列,常被用来分隔标记。
Java程序的编写采用Unicode字符集,一个字符由两个字节表示。
1、 注释
单行注释://text从//到本行结束的所有字符都作为注释被编译器忽略;
多行注释:/*text*/从/*到*/间的所有字符会被编译器忽略
注意:不能多行注释嵌套多行注释,从/*开始不管其中包含了多少个/*,只要遇到*/就会认为注释结束,从而引发错误。可以在多行注释中嵌套单行注释。
文档注释:/**text*/这类注释出现在任何声明之前,被括起来的正文部分,会作为声明项目的描述,出现在javadoc命令产生的帮助文档中。批注参数来标记一些特殊的属性及其相应的说明:如@author<作者姓名>、@version<版本信息>、@param<参数名称><参数说明>和@return<返回值说明>等。
2、 标识符
标识符的首字符必须是字母、下划线或美元符号,后面的字符可以是数字,区分大小写的,不能使用关键字或保留字。
Java中自定义标识符要点:
1) 包名:所有字母都小写;
2) 类名和接口名:单词首字母大写,多单词构成时,单词首字母大写;
3) 变量名和方法名:首字母小写,多单词构成时,除第一个字母首字母外,其他首字母都大写;建议变量名第一个单词为名词,方法名第一个单词为动词。
4) 常量名:所有字母都大写,多单词组成时,用下划线隔开。
3、 关键字
被Java语言赋予了特殊含义的标识符,所有字母都为小写,不能作其他用途。其中有两个为保留字goto和const。
4、 字面量
字面量是某些类型值的基本表述,这些类型包括整型,浮点型,布尔型,字符及字符串。
1) 整型字面量
整数有四种表示形式:
十进制:由一系列0~9数字组成,但它的第一个数字不能是0;
八进制:以0开头的整型字面量,只能出现0~7;
十六进制:以0x开头的整型字面量,包括数字0~9和字母A-F(大小写均可);
二进制:以0b开头,只能出现0和1(JDK 1.7新特性);
长整型:后缀添加L(注意因为L的小写容易与数字1混淆,建议避免使用L的小写作长整型后缀或变量名)。
注意:只有十进制的负数是显式表示的(必须前加减号),其他进制的负数是隐式的。
2) 浮点字面量
Java语言中double为默认浮点型。定义float字面量时,必须添加f或F作为后缀。
3) 布尔字面量
布尔字面量有两个值:true及false;
4) 字符字面量
一个由单引号括起的字符,或者用’\u0061’表示。字符属于char类型,并且从Unicode编码集中得来。它还包括转义字符,它们以反斜杠”\”开始作转义用
5) 字符串字面量
字符串字面量是由双引号引起的零个或多个字符的序列。每个字符串字面量被看作是一个串对象,并非一个字符的数组。
5、 运算符及特殊分隔符
+、-、!、%、^、&、*、|、/、>、<、()、{}、[]、;、?、:、,、.、=
++、--、<=、>=、!=、<<、>>、>>>、+=、-=、*=、/=、&=、|=、^=、%=、>>=、
<<=、>>>=、||、&&
6、 数据类型
任何一个变量或表达式都有一个数据类型,数据类型决定变量可能的取值范围,决定对这些值允许的操作,以及这些操作的意义是什么。Java语言中提供了内置定义的数据类型,程序员也可利用类和接口机制构造新数据类型。
Java语言有两种数据类型:基本数据类型和引用数据类型。
基本数据类型是指不能再分割的原子类型。如:整型(byte, short, int, long)、浮点型(double, float)、布尔型(boolean)、字符型(char)。
引用数据类型有三种:数组、类及接口。
1) 基本数据类型
Java的整数类型独立于机器,四种整数类型的宽度是固定的:byte8位、short16位、int32位、long64位,并且是有符号的。类型宽度决定变量的算术性质及合法的取值范围,将超出合法范围的值赋给一变量,那么这个值将是对合法值域取模后的值。Java默认整型为int:byte、short类型会自动提升为int类型。
浮点类型float表示单精度(32位),而double表示双精度(64位)。
字符类型:Java使用Unicode字符集,char类型数据被定义成一个16位的无符号整数,因而byte、short类型都不能自动转换为char型, char类型会自动转换为int类型。
布尔类型:它的取值只有true和false。它非数值型,不能强制类型转换为数值型。
2) 引用数据类型
数组:数组的大小是固定的,数组中元素必须为同一类型。数组中所有元素都可通过角标来引用,角标可被当作数运算,但角标的值不应被破坏。Java编译时会进行数组边界检查,阻止角标越界。在声明中不允许指定维数。
注意:Java中不存在多维数组,但可创建数组的数组。length是数组的长度属性。
数组都是Object类的一个子类的实例,可以把数组赋给一个Object变量,在类的层次结构中有个Array的子类,有个实例变量“length”,但Array类本身不能显式地产生子类。
类:类支持数据抽象以及实现对数据的约束,在Java中,每一个新的类型创建一个新类型。在已有类的基础上构造的新类称为派生类,派生出类称为原来类的子类,原来类称为超类。类的派生具有传递性。
一个类的直接超类(即父类)以及指示这个类如何实现的接口,在类的声明中用extends及implements 标出。
所有的类均从一个根类Object中派生出来,除Object外任何类都有一个直接超类。如果一个类在声明时未指明其直接超类,那么缺省即为Object。
Java语言仅支持单继承,通过接口机制,突破单继承的局限。
Java语言支持在类类型之间的强制转换。子类实例可作为父类的实例来使用,不需要显式的转换,这种转换称为拓宽。父类的实例想作子类的实例来使用,就得强制类型转换,这种转换称为削窄。只有父类的实例就是子类的实例或其子类时,编译才能通过。兄弟类之间的强制类型转换是不允许的。
注意:强制转换只影响到对象的引用,不会影响对象本身。不过对实例变量的访问受到对象引用的类型的影响。一个对象从一类型转到另一类型,可使同一变量名对不同的实例变量访问。
7、 方法
方法是可施于对象或类上的操作,可在类或接口中声明,但只能在类中实现。
构造函数隐式地返回本类的实例对象,不用添加void修饰符和return语句。其他的方法都必须有一个返回类型或者使用void修饰符。
注意:不允许在方法内部定义与参数名相同的变量。
Java语言允许多态方法命名,即用已在这个类或其超类中使用过的方法名来声明方法,从而实现方法的重写及重载。
重载:当同一个类中或具有继承关系的父子类中有多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器根据传入的参数类型、参数个数和参数顺序选出调用哪个方法进行编译。
重写:也可称为方法的“覆盖”。在Java中,子类将继承父类中所有非private修饰符修饰的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。
重写原则:两同两小一大
两同:父类和子类方法名相同、参数列表相同;
两小:子类返回值类型更小(即子类返回值类型是父类的返回值类型的子类或优先级较低)、子类方法抛出的异常与父类相同或是父类抛出异常的子类或根本不抛异常;
一大:子类方法的访问权限与父类相同或比父类访问权限更大。
注意:返回类型不能用来区别方法。在一个类范围内,方法名相同,参数列表相同,返回类型相同的方法,必须返回相同的类型。若仅返回类型不同,会产生二义性。
8、 变量
根据声明变量时使用的数据类型不同,变量分为基本类型变量和引用类型变量。
基本类型变量的名字是变量本身;
引用类型变量的名字是引用数据类型的存储地址;
注:Java中作为方法传入参数时,无论基本类型变量还是引用类型变量传递的都是它们的复制品,而非本身。
根据定义变量的位置,变量可分为成员变量和局部变量。
成员变量是指在类中,方法外部声明的变量,Java会自动初始化;
局部变量是指在方法的作用域内声明的变量,需要程序员初始化。
根据变量的生命周期长短,成员变量可分为类变量和实例变量。
类变量:用static标记的成员变量,它是该类中所有实例的公共属性,随类的加载而加载,生命周期与类相同;
实例变量:没有static标记的成员变量,它是该类中实例的特有属性,随实例的创建而存在。
特殊实例变量:
this变量:代表当前对象。一个方法引用它自身的实例变量及实例方法时,在每个引用的前面都隐含着this。
super变量:类似this。this变量实际上是对当前对象的引用,它的类型即为包含当前正在处理的方法的类。而super变量则是对其超类类型的对象的引用。
9、 流程控制语句
流程控制语句有两种:选择语句和循环语句
选择语句:if-else语句,switch-case语句;
注意:switch语句支持byte、short、int、char数据类型,还支持枚举(JDK1.5)、字符串(JDK1.7)。
循环语句:for语句,while语句,do-while语句。
注意:循环语句中可使用标识符与break、continue结合,实现多重循环跳转。
- 黑马程序员_java基础下
- 黑马程序员_Java编程基础下
- 黑马程序员_java基础_Day2(下)
- 黑马程序员_Java基础(下)
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java 基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- 黑马程序员_java基础
- 动态数据透视表pivot table(行转换列)
- adb devices no permissions
- PHP异步并行扩展Swoole发布1.7版本
- oracle中 sql%rowcount 用法
- sockaddr_in 和sockaddr_un的区别
- 黑马程序员_java基础下
- 宝马车 三种版本的不同隐藏功能,看看您开启了吗
- 微信公众平台开发入门教程(图文详解)
- Eigen函数与Matlab函数的对应关系
- 是的vsdvdsssdvsd
- No_27:Quadratic primes
- Openfire无法安装
- Oracle trigger 启用/禁用
- 无法通过百度联盟申请的常见原因