一、Java语言的特点
- 面向对象
面向对象(oop)就是Java语言的基础,也是Java语言的重要特性。面向对象的概念:生活中的一切事物都可以被称之为对象(万物皆可new),生活中随处可见的事务就是一个对象。我们可以见这些事物的状态特征(属性)以及行为特征(方法)提取出来,并以固定的形式表示。
2.简单好用
Java语言是由C和C++演变而来的,他省略了C语言中所有难以理解有容易混淆的特性(比如指针),变得更加严谨、简洁、易使用
3.健壮性
Java语言的安全检查机制,将许多程序中的错误扼杀在摇篮中,另外,在Java语言中还具备了许多保证程序稳定、健壮的特性(强类型机制、异常处理、垃圾的自动收集机制等),有效减少了错误,使得Java应用程序更加健壮。
Java通常被用来在网络环境中,为此,Java提供了一个安全机制用以防止恶意代码的攻 ji (敏感词不让写),从未提高系统的安全性。
5.平台无关性
Java平台无关性由Java虚拟机实现,Java软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。
6.支持多线程
在C++语言中没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而Java语言却提供了多线程支持。多线程机制使应用在同一时间并执行多项任务,该机制使得程序能够具有更好的交互性、实时性。
7.分布式(支持网络编程)
Java语言具有更强大的、易于使用的网络能力,非常适合开发分布式计算的程序。Java中提供了网络应用编程接口(java.net),使得我们可以通过URL、Socket等远程访问对象。
8.编译与解释共存
Java是编程与解释共存的语言。
二、Java基础语法
- 标识符:
- 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。
- 合法的标识符:
- 由字母、数字、下划线“_”、美元符号“$”或者“¥”组成,并且首字符不能是数字。
- 不能把Java关键字和保留字作为标识符。
- 标识符对大小写敏感。
- 关键字:
- Java语言中已经赋予了特定含义的
- 保留字:
- const、goto,Java版本中尚未使用,但以后版本可能会作为关键字使用
- 变量:
- 程序运行期间可以被改变的量,在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”,也叫容器的创建。
- 变量的使用:
- 变量的声明:数据类型 变量名
- 变量的赋值:变量名 = 数据
- 变量的操作:放入打印语句进行输出或者进行运算
- Java中的注释有三种:
- 单行注释
- 多行注释
- 文档注释
三、数据类型
- 基本数据类型(8个),也称原始数据类型:
类型 | 占用内存 | 值范围(含边界值) | 默认值 |
整数型(int) | 4字节 | -2 147 483 648 ~ 2 147 483 647(稍大于20亿) | 0 |
短整数型(short) | 2字节 | -32 768 ~ 32 767 | 0 |
长整数型(long) | 8字节 | -9 223 372 036 854 775 808L ~ 9 223 372 036 854 775 807L | 0 |
字节型(byte) | 1字节 | -128 ~ 127 | 0 |
浮点型(float) | 4字节 | -3.40292347E+38-3.40292347E+38 | 0f |
双精度型(double) | 8字节 | -1.79769313486231570E+308- 1.79769313486231570E+308 | 0d |
布尔型(boolean) | 1字节 | true 或 false | false |
字符型(char) | 2字节 | ‘ \u0000 - u\ffff | ‘\u0000 ’ |
- 引用数据类型(3种):
- 数组、类、接口
- 类型转换:
- 自定类型转换,也叫隐式转换
- 强制类型转换,也叫显示转换
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型
四、运算符
- 运算符:
- 一种特殊符号,用以表示数据的运算、赋值和比较数与整数
- 运算符分类:
- 算术运算符、赋值运算符、比较运算符、逻辑运算符、三运运算符
- 算数运算符
2.赋值运算符
3.比较运算符
4.逻辑运算符
5.三元运算符
boolean类型表达式为:X ? Y : Z X,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算 结果为表达式z的值。
//例:
int score = 75;
String type = score >=60 ? "及格" : "不及格";
五、Java流程控制语句
选择结构
- if 语句:
- if(条件表达式){ 一条或多条语句 };
- if else 语句:
- if(条件表达式) {语句块1} else {语句块2}
if(条件1){
//条件1成立的时候执行的条件
}else if(条件2){
//条件1不成立,条件2成立的时候执行的条件
}else if(条件3){
//条件1、2不成立,条件3成立的时候执行的条件
}......
else if(条件n){
//条件1到n-1不成立,条件n成立的时候执行的条件
}else{
//当以上的所有条件都不成立的时候执行的代码
}
/*
整个结构是一个整体,当一个条件成立并执行之后,整个结构就已经执行完毕;
if块必须有;
else if块可以有一个,也可以有多个;
else 可以有一个,也可以没有。
*/
- switch 开关语句:
switch(表达式){
case 值1: //相当于if(){}
//满足表达式的结果==值1的时候执行的代码
break;
//退出当前的switch选择结构
case 值2: //相当于else if(){}
//满足表达式的结果==值2的时候执行的代码
break;
......
case 值n:
//满足表达式的结果==值n的时候执行的代码
break;
default: //相当于else
//以上的匹配都失败的时候执行的内容
break;
}
/*
表达式的返回值必须是下述几种类型之一:int, byte, char, short,String;
case子句中的取值必须是常量,且所有case子句中的取值应是不同的;
default子句是可选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;如果case后面没有写break则直接往下面执行!
Case后面的执行体可写{ }也可以不写{ }
六、流程跳转
流程跳转语句:break,continue
- break:在switch中结束case条件判断,在循环体中结束循环
- continue:作用在循环体中,结束循环体的本次循环,而进入下次循环