拥有一点C基础的小白从零开始学java。
标识符
Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
◆凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则。
Java标识符命名规则:
◆标识符由字母、下划线“”、美元符“$” 或数字组成。
◆标识符应以字母、下划线、美元符开头。
◆Java 标识符大小写敏感,长度无限制。
关键字及常量变量
- 关键字:有特定含义和专门用途的字符。
- 常量:Java的常量值用字符串来表示,区分为不同的数据类型。
字符串常量“”阿巴阿巴阿巴“”
字符常量: 123、‘a’ - 变量:程序最基本存储单元,包括变量名、变量类型和作用域。
Java和c一样使用变量需要声明。
变量按声明位置划分:
局部变量:方法或语句块内部定义的变量。
成员变量:方法外部、类的内部定义的变量。
与C++不同,Java称成员变量。
注意:类外面(与类对应的大括号外面)不能有变量的声明。
按所属的数据类型划分:
基本数据类型变量
引用数据类型变量
内存四区
程序执行的时候将内存分为四个区:
- 代码区(code segment)
- 数据区(date segment)
- 栈区(stack)
- 堆区(heap)
数据类型
一、数据类型的划分
逻辑型boolean
boolean类型适用于逻辑运算 ,一般用于程序流程控制。
boolean类型数据只允许取值true或false//不同于C/C++可用0和1
例:
boolean flag;
flag=true;
if(flag){
biahblah……;
}
字符型char
- char 型数据用来表示通常意义上“字符”。
- 字符常量为用单引号括起来的单个字符,例如:char eChar = ‘a’; char cChar ='中";
- Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:
心
char c1 = '\u0061";
注:Unicode是全球语言统一编码 - Java语言中还允许使用转义字符’\n’来将其后的字符转变为其它的含义。
整数类型
byte(1字节,范围 -27~27-1)
short(2字节)
int(4字节)
long(8字节)
注:1字节8位28,但Java存储符号位,用去一位。
Java中整型常量默认为int型,声明long型常量后可以加‘l’或‘L’
long m=12345678978L
浮点类型
float(8位有效数字)
double(16位有效数字)
浮点类型表示形式:
- 十进制表示:3.14
- 科学计数法:3.14e2
Java浮点型常量默认为 double型,如要声明一个常量为 float型,则需在数字后面加‘l’或‘L’。
由于精度问题浮点数有一定误差
数据类型的转换
- boolean类型不可以转换为其他的数据类型。
- 整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:
- byte,short,char->int->long->float->double
- byte,short,char之间不会互相转换,他们三者在计算时首先回转换为int类型。
- 容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出。
- 有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。
- 实数常量(如:1.2)默认为double
整数常量(如:123)默认为int
输入输出基本型数据
输入基本型数据
使用Scanner类创建对象
Scanner reader = new Scanner(System.in);
然后reader对象调用下列方法,读取用户命令行输入基本类型数据
next.Boolean(),next.Double(),next,Int(),next.Short(),next.Float(),next.Byte(),next.Long().
每输入一个数据需要按回车确认。
输出基本型数据
System.out,println()和System.out,print()输出串值和表达式的值,前者输出换行,后者不换行。允许使用并置符号+将变量、表达式或一个常数值与一个字符串并置一起输出。
- 使用时不能有回车
参考C语言可使用System.out.printf(“格式控制部分”,表达式,表达式……)
数组
一、声明数组
包括声明数据类型和变量名(数组名)
数组声明:
数组元素类型 数组名[ ]
数组元素类型 [ ] 数组名
int [ ] a, b[ ]
其中a数组是一维数组,b是二维数组
与C/C++不同,Java不允许声明数组[ ]存在数字,如:int a[12]
/int [12] a是错误的
二、为数组分配元素
声明数组仅仅是为了给出变量名字和元素的数据类型,想要真正的使用数组还要必须创建数组,即给数组分配元素。
数组名 = new 数组元素的类型 [ 数组元素个数 ]
数组名是数组的起始地址(数组的引用),可通过数组变量名字+索引(下标)使用数组元素
声明数组和创建数组可以一起完成:
float boy[ ] = new float [ 4 ]
与C语言不同的是,Java允许使用int型变量的值制定数组元素个数
如:
int size = 30
double number[ ] = new double[ size ];
三、length的使用和数组元素初始化
数组变量名.length = 数组元素的个数
声明数组时可以使用:
数组元素类型 数组变量名称 [ ] = {数组元素个数及值}
int boy[ ] = {1,2.3.4.5.6}
等同于
int boy[ ] = new int[6];
boy[0]=1;boy[1]=2;boy[2]=3;boy[3]=4;boy[4]=5;boy[5]=6;
运算符
运算符优先级:
语句概述
1、方法调用语句
- 如:System.out.println(“hello”);
2、表达式语句
- 如 x = 1;
3、复合语句
- 用{ }将一些语句括起来形成复合语句
4、空语句
- 一个分号也可以构成一个语句
5、控制语句
- 控制语句分为条件语句、分支语句和循环语句
控制语句的用法和C/C++都类似
for语句与数组
JDK1.5对for语句功能进行扩充,具体如下:
for(声明循环变量:数组名字) {
……
}
其中声明循环变量必须与数组类型相同。这种形式的for语句类似自然语言的“for each”:对于循环变量依次取数组中的每一个元素的值。
6、package语句和import语句
方法
Java中的方法类似于其他语言的函数,是一段完成特定功能的代码片段,声明格式:
>[修饰符1 修饰符2 ……] 返回值类型 方法名(形式参数列表) {
> Java语句;....
>}
>
- 形式参数:在方法被调用时用于接收外接输入的数据
- 实参:调用方法时实际传递给方法的数据
- 返回值:方法在执行完毕后返还给调用它的环境的数据
- 返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void。
java中使用下述形式调用方法:对象名.方法名(实参列表)。
实参的数目、数据类型和次序必须和所调用的方法声明的形参列表相匹配。
return语句终止方法的运行并指定要返回的数据。
Java中进行函数调用传递参数时,遵循值传递的原则
基本类型传递时是传递的数据本身。引用类型传递的是对对象的引用,不是对象本身。