java
前言
java三大版本
- Java SE: 标准版
- Java ME:嵌入式开发
- Java EE:企业级开发
JDK: java开发者工具
JRE:java运行时环境
JVM:java虚拟机
java程序运行机制
编译型
解释型
java基础
注释、标识符、关键字
注释
单行注释: //
多行注释: /* 注释 */
/*我是多行注释
我是多行注释
我是多行注释
*/
JavaDoc(文档注释): /** */
/*
*
*
*/
关键字
标识符
-
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被标为标识符。
-
所有的标识符都应该以字母(A-Z 或者a-z) ,美元符($)、或者下划线(_) 开始
-
首字符之后可以是字母(A-Z 或者a-z),美元符($) 、下划线( )或数字的任何字符组合
-
不能使用关键字作为变量名或方法名。
-
标识符是大小写敏感的
-
合法标识符举例: age、$salary 、_ 1. value
-
非法标识符举例: 123abc、-salary. #abc
-
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
数据类型
语言
一、强类型语言
强类型语言是一种强制类型定义的语言,一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了,强类型语言包括Java、.net 、Python、C++等语言。
举个例子:定义了一个整数,如果不进行强制的类型转换,则不可以将该整数转化为字符串。
二、弱类型语言
弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括vb 、PHP、javascript等语言。
java数据类型
概念
基本类型(primitive type)
引用类型(reference type)
整数拓展
:进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i1 = 010; //八进制
int i2 = 0x10;//十六进制 0~9 A~F
10 8 16
浮点数拓展
float 有限 离散 舍入误差 大约 接近但不等于
最好完全避免使用浮点型进行比较
银行业务怎么表示?
BigDecimal 数学工具类
字符拓展
所有的字符本身还是数字
编码 Unicode 2字节 0~ 65536 Excel 2^16 65536
char c1='\u0061';
转译字符
\t 制表符
\n 换行
…
boolean 默认 true
类型转换
概念
由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
运算中,不同类型的数据先转化为同-类型,然后进行运算。
强制类型转换
高到低 (类型)变量名
自动类型转换
低到高
注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低E容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题!
变量、常量
变量
变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是- -条完整的语句,因此每一个声明都必须以分号结束
变量作用域
-
类变量
static
-
实例变量
从属于对象;如果不自行初始化,这个 类型的默认值 0 0.0
布尔值:默认为false
除了基本类型,其余的默认都是null
-
局部变量
只在当前方法内有效,必须声明和初始化变量值
public class Variable{
static int allClicks=0; //类变量
String str="hello world"; // 实例变量
public void method(){
int i =0; //局部变量
}
常量
常量(Constant):初始化(initialize)后不能再改变值! 不会变动的值。
所谓常量可以理解成-种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final常量名=值;
final double PI=3.14;
常量名一般使用大写字符。
static final 修饰符不存在先后顺序
变量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:。例如:monthSalary 除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线: MAX _VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
运算符
基本运算符
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符=
- 关系运算符:>, <, >=, <=, ==, != instanceof
- 逻辑运算符:&&(与), II(或), !(非)
- 位运算符:&, |, ^, ~, >>, <<, >>>了解! ! ! )
- 条件运算符? :
- 扩展赋值运算符:+=,- =, *=, /=
public class Demo02 {
public static void main(String[] args) {
long a = 12111131415415L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
}
}
//当运算过程中有long型的,则结果为long型
//其他有无int 为int型
补充:
% 取余(模运算)
++i 先将i的值赋给变量,再自增
i++ 先自增,再将i的值赋给变量
短路运算
public class Demo05
public static void main(String[] args) {
//与(and)_ 或(or) 非(收反)
boolean a = true;
boolean b = false;
System.out.println("a && b: "+(b&&a)); //逻辑与运算:两个变量都为真,结果才为true
System.out.println("a||b:"+(a||b)); //逻辑或运算: 两个变量有一个为真, 则结果才为true
System . out. println("!(a8&b):"+!(a&8b)); //如果是真,则变为假,如果是假则变为真
//短路运算
int c=5;
boolean d=(c<4)8&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
false 5
判断 与逻辑运算 如果前一个为假,则后面不会运算,即为短路运算。
位运算
public class Demo06 {
public static void main(String[] args) {
A = 0011 1100
B = 0000 1101
------------------------
A&B=0000 1100 与
A|B=0011 1101 或
A^B=0011 0001 异或(相同取0,不同取1)
~B=1111 0010 非
2*8=16 2*2*2*2
效率极高!!!
<< *2
>> /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
}
}
拓展运算符
public class Demo07 {
public static void main(String[] args) {
inta=10;
intb=20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
//字符串连接符+ , string
System.out.println(""+a+b);变为字符串再连接
System.out.println(a+b+"");先运算
}
}
结果: 30 1020 30
三元运算符
public class Demo07 {
public static void main(String[] args) {
// x ? y : Z
//如果x==true,则结果为y,否则结果为z
int score = 50;
String type = score <60 ?"不及格”:"及格”; //必须掌握 (精简代码)
//也可以用 if
System. out. print1n(type);
}
}
优先级()
包机制、JavaDoc
包机制
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[. pkg2[. pk3…]];
一般用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[. package2…].(classname|*);
*:通配符,表示所有
Java Doc
javadoc命令是用来生成自己API文档的
参数信息
- @author作者名
- @version版本号
- @since指明需要最早使用的jdk版本
- @param参数名
- @return 返回值情况
JavaDoc
包机制
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[. pkg2[. pk3…]];
一般用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[. package2…].(classname|*);
*:通配符,表示所有
Java Doc
javadoc命令是用来生成自己API文档的
参数信息
- @author作者名
- @version版本号
- @since指明需要最早使用的jdk版本
- @param参数名
- @return 返回值情况
- @throws异常抛出情况