Java初识
Java语言特点
- 简单性
- 面向对象
- 跨平台
- 分布式
- 多线程
- 安全性
- 健壮性
- 高性能
Java三大版本
-
JavaSE(Java Platform,Standard Edition)
Java SE也称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 JavaEE提供基础。
-
JavaEE(Java Platform,Enterprise Edition)
JavaEE也称为 J2EE。企业版,帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
-
javaME:嵌入式开发(手机,小家电等,现在几乎不用)
标识符
在Java中,所有组成部分都有名称,而类名、变量名、方法名等都被称为标识符。
注意点:
-
所有标识符都应该以:字母(AZ,az),美元符($)或者下划线(_)开始
-
首字母之后可以是字母(AZ,az),美元符($)或者下划线(_)或数字的任何字符组合
-
不能使用关键字作为变量名或方法名
-
标识符大小敏感
数据类型
Java是一种强类型语言,要求变量的使用要符合规定,所有变量都必须先定义才能使用。
- 基本类型
- 数值类型
- 整数类型
- byte:占一个字节
- short:占两个字节
- int:占四个字节
- long:占八个字节
- 浮点类型
- float:占四字节
- double:占八字节
- 字符类型
- char:占两字节
- 整数类型
- 布尔(boolean)类型:占1位,只有true和false
- 数值类型
- 引用类型
- 类
- 接口
- 数组
扩展:
-
字节:
位(bit):计算机 内部数据 储存的最小单位,11001100就是一个八位二进制数
字节(byte):计算机中 数据处理 的基本单位,习惯用B表示
字符:是指计算机中使用的字母数字,字和符号
1G = 1024M 1M = 1024kB 1KB = 1024B 1B = 8bit
-
进制:
二进制:0b开头
八进制:0开头
十六进制:0x开头
-
浮点数:
描述:有限、离散、舍入误差、接近但不等于、大约
最好完全避免使用浮点数进行比较
-
字符:
char,用单引号表示,所有字符的本质都是数字
char涉及的编码使用的事Unicode编码,2字节,065536,区间范围表示:U0000UFFFF
\U0061就是字符a的Unicode表示,用数字表示是97
-
布尔值:
boolean flag = true; if(flag == true){} if(flag){} //这两种写法是一样的,可以直接省略
类型转换
Java运算时,如果有不同的数据类型,不同数据类型会先转换为同一类型数据。
低 | ------> | ----> | --> | ----> | ----> | 高 |
---|---|---|---|---|---|---|
byte | short | char | int | long | float | double |
-
强制类型转换
由高到低需要强制类型转换,格式:
float f = (int) 12.0f;
-
自动类型转化
由低到高会自动转换
注意点:
- 不能对布尔值进行转换
- 转换时可能会存在内存溢出或者精度问题
- 操作较大的数时,注意溢出问题,可以在计算时先转化其中一个数
int a = 10_0000_0000; //JDK7新特性:数字之间可以用下划线分割,下划线不会输出,增加可读性。
int b = 20;
long c = a*b; //错误
long d = (long)a * b; //正确
/*
虽然从int到long会自动转换,但是自动转换是在计算完成后才自动转型,所以会存在溢出问题。
此时可以先将其中一个转换,就不会造成溢出
*/
变量
定义:可以变化的量,Java是一种强类型语言,每个变量都需要声明其类型,Java变量是程序中最基本的存储单位,其要素包括:变量名,变量类型,作用域。
//数据类型 变量名 = 值;
type varName = value;
/*
注意事项:
1.每个变量的类型可以是基本类型也可以是引用类型
2.变量名必须是合法的标识符
3.变量声明是一条完整的语句,因此每一条语句都要以分号结束
*/
-
类变量:需要加一个static修饰,从属于类
-
实例变量:从属于对象,要使用需要创建对象
-
局部变量:方法中的变量,从属于方法
public static Test{ static int a = 10; //类变量 String b; //实例变量 public static void main(String[] args){ int c = 0; //局部变量 System.out.println(c); //局部变量实现 Test test = new Test(); System.out.println(test.b); //实例变量实现 System.out.println(a); //类变量实现 } }
运算符
- Java语言支持如下运算符
-
自增和自减(一元运算符):
int b = a++; a++: //执行完这行代码后,先给b赋值,再自增 int b = ++a; ++a: //执行这行代码前,先自增,再给b赋值
-
逻辑运算符
&&(与):每个变量都为真才为真
||(或):两个变量有一真即为真
!(非):取反
注:在与(&&)运算中,如果第一个变量(表达式)为假,则会发生短路,第二个变量(表达式)不会执行,直接返回结果为假,这也叫短路运算。
-
位运算
public class Test{ public static void main(String[] args){ /* A = 0011 1100 B = 0000 1101 位运算:把数字转为二进制进行两个二进制比较 A & B = 0000 1100 对应位置上都为1,结果的相应位置上才为1,否则为0 A | B = 0011 1101 如果对应位都是0,结果的相应位置上才为0,否则为1 A ^ B = 0011 0001 如果对应位置相同,结果的相应位置上为0,否则就为1 ~ B = 1111 0010 取反,0变1,1变0 ~ A = 1100 0011 取反,0变1,1变0 <<:左移,相当于 *2 >>:右移,相当于 /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); //把2所表示的二进制数中的1左移三位 } }
-
三元运算符
表达式1 ?表达式2 :表达式3
如果表达式1为true,则结果为表达式2,否则结果为表达式3
JavaDoc文档
javadoc命令是用来生成自己的API文档的,把Java程序编译成文档便于阅读。
-
执行命令行语句,生成class文件:命令行语句:javac triangle.java
-
执行class文件:命令行语句:java triangle
-
生成javadoc文档:命令行语句:javadoc -encoding UTF-8 -charset UTF-8 triangle.java