Java笔记day01
认识Java的JDK、JRE、JAR、JVM等。。。
习惯规范:包名全小写(域名倒写),类名(大小驼峰形式)
注:系统jar包system不用导jar包(自带)System.out.println();打印空行
java语言通过JVM编译序列化。
Java简介
-
List item
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
-
List item
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
-
List item
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK。
另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境。
JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可。
Java基础语法
一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。
大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用 类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类:类是一个模板,它描述一类对象的行为和状态。(对象有属性和方法)
方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
Java 标识符
开发人员可以自己定义标识符。
所有的标识符都应该以字母(A-Z 或者 a-z),美元符(
)
、
或
者
下
划
线
(
)
开
始
首
字
符
之
后
可
以
是
字
母
(
A
−
Z
或
者
a
−
z
)
,
美
元
符
(
)、或者下划线(_)开始 首字符之后可以是字母(A-Z 或者 a-z),美元符(
)、或者下划线()开始首字符之后可以是字母(A−Z或者a−z),美元符()、下划线(_)或数字的任何字符组合
关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary
JAVA修饰符
Java可以使用修饰符来修饰类中方法和属性。
主要有两类修饰符:
访问控制修饰符 : default, public , protected, private
非访问控制修饰符 : final, abstract, static, synchronized
JAVA运算符
JAVA运算符:加减乘除自增自减。。。
混合多练
public class math {
public static void main(String[] args) {
// int a =10;
// int b=2;
// System.out.println(a+b);
// System.out.println(a-b);
// System.out.println(a*b);
// System.out.println(a/b);
// System.out.println(a%b);
int y=10;
System.out.println(++y);//y值变化过程覆盖(两部分顺序执行,y值在后台变化传递)
System.out.println(y++);
System.out.println(--y);
System.out.println(y--);
System.out.println(y);
}
}
==:比较运算符,两个变量值相等结果为true,不相等则为false
!可作用于布尔类型的值。!=
字符串优先级:
乘除优先级高于字符串拼接
字符串拼接优先级高于加减,故加减要添加括号提升优先级。
public class Concat {
public static void main(String[] args) {
int a =10;
int b=20;
String name ="系统";
System.out.println(a+b+name);//先数学运算,再变为字符串打印
System.out.println(name+a+b);//先字符串运算,a、b都变为字符串形式
System.out.println(name+(a+b));//可添加括号,提升优先级运算。先数学运算,再字符串打印
}
}
逻辑运算符:
与&&,特性:两边都为true,结果就为true;有一个为false,结果就为false。
或||,特性:两边只要有一个为true结果就为true,两边都是false结果就为false
死亡代码Dead code永远不会执行:
短路的意思,根据与&&和或||的本身特点,前面的表达式计算结果就定论了,就无需执行后面代码
三目(三元)表达式:(条件运算符)
格式:第一部分(布尔表达式)?第二部分(值1):第三部分(值2)
如果布尔表达式返回结果为true,则返回(值1)。如果布尔表达式返回结果为false,则返回(值2).
Java 变量
Java 中主要有如下几种类型的变量
局部变量:在方法体内的变量。java规定方法体中定义的变量不能重名。
类变量(静态变量)
成员变量(非静态变量)
变量:变化的量,它在代码中可以多次改变它的值,动态的。
一个变量是可以多次赋值的,执行赋值顺序:从上向下。前者会被覆盖。
常量:不变化的量,被final修饰后的变量就是常量。
被final修饰的局部变量不能被再次设置值。(只能赋值一次)
常量规范:习惯全大写命名,不能以数字开头,单词之间用_隔开,不能用-号。
Java 数组
数组是储存在堆上的对象,可以保存多个同类型变量。以及如何声明、构造以及初始化一个数组。
Java 枚举
Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug。
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
JAVA关键字
这些关键字(保留字不能用于常量、变量和任何标识符的名称)
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | public | 公共的 |
private | 私有的 | |
protected | 受保护的 | |
default | 默认 | |
类、方法、变量修饰符 | class | 类 |
interface | 接口 | |
abstract | 声明抽象 | |
extends | 扩充,继承 | |
final | 最终值,常量修饰符 | |
implements | 实现接口 | |
new | 新建实例对象 | |
static | 静态 | |
native | 本地,原生方法(非JAVA实现) | |
strictfp | 严格,精准 | |
synchronized | 线程,同步 | |
transient | 短暂 | |
volatile | 易失 | |
程序控制语句 | break | 跳出循环 |
case | 定义一个值供switch使用 | |
continue | 继续 | |
default | 默认 | |
do | 运行 | |
else | 否则 | |
for | 循环 | |
if | 如果 | |
return | 返回 | |
switch | 根据值选择执行循环 | |
while | 循环 | |
错误处理 | assert | 断言表达式是否为真 |
catch | 捕捉异常 | |
finally | 无论异常都执行 | |
throw | 抛出一个异常对象 | |
throws | 声明一个异常可能被抛出 | |
try | 捕获异常 | |
包相关 | import | 引入 |
package | 包声明 | |
变量的基本类型 | int | 整型 |
short | 短整型 | |
long | 长整型 | |
float | 单精度浮点型 | |
double | 双精度浮点型 | |
byte | 字节型 | |
char | 字符型 | |
boolean | 布尔型 | |
变量引用 | void | 无返回值 |
this | 本类 | |
super | 父类;超类 | |
保留关键字 | null | 空 |
goto | 是关键字,但不能使用 | |
const | 是关键字,但不能使用 |