java-day01
一.java简介
-
1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;
-
Java的三种技术架构:
-
JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;
-
JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;
-
JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;
-
-
java分为两个部分:先编译后翻译
![img]()
-
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
-
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.
二.java语法
-
关键字
break case const continue float goto long native new throws try -
标识符:其实就是在程序中自定义的名词。
注意:①:数字不可以开头。
②:不可以使用关键字。
-
常量:是在程序中的不会变化的数据。
-
final 常量类型 常量名 = 常量值;
-
常量名一般用大写字母
-
修饰符static可以在final的前面或后面
public class Constant {
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
-
变量
-
局部变量:使用前必须声明和初始化值(在main方法中使用)
-
实例变量:从属于对象,如果不进行初始化,数字类型默认为 0、0.0;布尔值默认为false;其他类型默认为null(必须重写方法再能使用)
-
类变量 : 带static(静态的,可以在这个类中直接使用这个变量)
public class Variable{
static int allClicks=0; //类变量 static 静态的
String str = "hello world"; //实例变量
public void method(){
int i = 0; //局部变量
}
}
-
数据类型
-
引用数据类型: 数组、类、接口。
-
八大基本类型:byte、short、int、long、float、double、char、boolean
低---------------------------------------->高
byte,short,char-->int-->long-->float-->double //浮点型高于整型
由高到低,需要进行强制类型转换, (类型)变量名
由低到高,自动类型转换
注意:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型(对象类型?)
3. 在把高容量转换到低容量的时候,需要进行强制类型转换
4. 转换的时候可能存在内存溢出或精度问题
-
命名规范
-
类名:首字母大写和驼峰原则:Man、GoodMan
-
类成员变量:首字母小写或驼峰原则:monthSalary
-
常量:大写字母和下划线:MAX_VALUE
-
方法名:首字母小写和驼峰原则:run()、runRun()
-
局部变量:首字母小写或驼峰原则
-
运算符
单目:单目运算符+ –(负数) ++ -- 等 乘除:算数单目运算符* / % + - 为:位移单目运算符<< >> 关系:关系单目运算符> < >= <= == != 逻辑:逻辑单目运算符&& || & | ^ 三目:三目单目运算符A > B ? X : Y 后:无意义,仅仅为了凑字数 赋值:赋值=
package Operators;
/*
位运算符
*/
public class BitwiseOperators {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
------------------
&:按位与
|:按位或
^:按位异或,相同得0,不同得1。如:A^B = 0011 0001
~:按位取反
面试题:怎样计算 2*8 = 16 最快?
答:2<<3,将2左移三位
2: 0000 0010
16: 0001 0000
<<:左移,相当于 *2
>>:右移,相当于 /2
*/
System.out.println(2<<3); //2*2^3
System.out.println(2<<7);
System.out.println(2<<15);
System.out.println(2<<29); //左移尽头
System.out.println(2>>1);
System.out.println(2>>2); //右移尽头
}
}public class TernaryOperator {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 字符串连接符:+
System.out.println(""+a+b); // 输出结果为 1020
System.out.println(a+b+""); // 输出结果为 30
System.out.println("---------------");
/*
条件运算符:条件 ? 表达式1:表达式2;
若条件成立,则结果为表达式1;反之,结果为表达式2
*/
int score = 60;
String result = score>=60? "及格":"不及格";
System.out.println(result);
}
}
优先级:
-
Math 类
幂运算 (2^3=8)
package Operators;
public class Operator {
public static void main(String[] args) {
double pow = Math.pow(2, 3); //2^3=8 power 幂
System.out.println(pow);
}
}
-


浙公网安备 33010602011771号