安装与语法

一、基础
1、JDK
JDK实际上是安装一个虚拟机,其作用是为不同的系统平台翻译解释程序,保证程序能在不同操作系统中正常运行
JRE
JRE包含java所有包,其包含在JDK中,如果只是运行程序可只要JRE,如果开发需要JDK
bin是binary(二进制)的缩写
2、Java优缺
特点:跨平台(主要特点)
缺点:运行相对较慢,所以一般大型网络游戏就会用C++等
3、安装后需要配置环境变量
配置环境变量:
1、PATH:将环境变量中”path”的变量后面加上JDK安装目录并加上”\bin”,中间以”;”隔开
2、CLASSPATH:将class文件目录复制在此变量后面,中间以”;”隔开,其作用是为了能在任何目录下运行程序,注意:不是设置java源文件的编译路径
3、JACA_HOME:将JDK安装目录输入即可
4、环境变量中”.”表示当前目录
4、java编写
1、Java所有代码都是在类中,Java程序扩展名要改为”.java”
2、Java程序中只能有一个”public”公共类,可以有多个类
3、Java程序命名必须与公共类名一致
4、Java程序编译通过后要生成一个以”.class”为扩展名的字解码文件,若是有多个类则每个类都会产生一个字解码文件
5、Java程序严格区分大小写,类命名最好以单词为主,每个单词最好首字母大写
例如:编写一个”HelloWorld”程序
public class HelloWorld{
public static void main(String[] args){
System.out.println(“Hello World!!!”);
}
}
class Person{
public void eat(){
System.out.println(“人会吃饭!”);
}
}
上面这个程序编译通过后,就会产生”HelloWorld.class”和”Person.class”两个字解码文件
5、Java编译与运行
编译:语法:”javac 程序名.java”,在cmd中先切换至文件目录下,若没有提示,则编译成功
运行:语法:”java 程序名”,若配置了”CLASSPATH”变量,则不用切换至文件目录
6、注释
1、单行注释:”//内容”,不可跨行
2、多行注释:”/内容/”,可跨行
3、文档注释:”/*内容/”,可跨行,且可以被doc工具解析,主要用于生成手册
7、Java两种核心机制
Java虚拟机(Java Virtual Machine)
垃圾收集机制(Garbage collection)
内存:是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。
缓存:缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
8、特殊语法
1、java -version 查询使用的JDK版本号
2、java -verbose 程序名 查看执行程序的步骤/过程
二、基础语法
1、标识符
Java语言中,对变量、方法、类等命名使用的字符称为标识符
命名规则:只能由字母、下划线、美元符号或数字组成,不能以数字开头,不能使用关键字
例: 合法的标识符:hell_、_958
不合法的标识符:class、98.3、hell world
关键字都是小写字符串:abstract、default、if、private、this、boolean、do、implements、protected、throw、break、double、import、public、throws、byte、else、instanceof、return、transient、case、extends、int、short、try、catch、final、interface、static、void、char、finally、long、strictfp、volatile、class、float、native、super、while、const、for、new、switch、null、continue、goto、package、synchronized等等
2、变量
变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域
变量按被声明位置划分:
1、局部变量:方法或语句块内部定义的变量
局部变量必须初始化
public void method(){
int i;
int j = i + 5;//编译出错,未被初始化
double d = 3.14;
}
2、成员变量:方法外部、类的内部定义的变量
成员变量之所以不用初始化是其声明时,会默认分配该类型的一个值
class method{
private int num1;
private double num2;
public void getNum(){
System.out.println(num1+” “+num2);//输出0 0.0
}
}
注意:类外面不能有变量的声明
变量按所属的数据类型划分:
1、基本数据类型变量
2、引用数据类型变量
3、数据类型分类:基本数据类型、引用数据类型
基本数据类型:数值型、字符型(char)、布尔型(boolean)
数值型:整数类型(byte、short、int、long)、浮点类型(float、double)
引用数据类型:类(class)、接口(interface)、数组
注意:String是一个类,所以其不属于数值类型
基本数据类型的转换是根据容量转换的,容量小的向容量大的转换
“char、short、byte”之间不会相互转换,他们三者之间在计算时首先会转换为”int”类型
为了区分长整型最好在其后面加一个大写的”L”
浮点型默认为”double”型,因此”float”型后面需要加一个”F”
public void method(){
long L = 45; //不会报错,因为其是整数没有超出”int”的范围,
float F = 24.1; //报错,没有加”F”,系统认为可能损失精度
System.out.println(L+F);
}
4、运算符
算术运算符:+,-,*,/,%,++,–(自加、自减)
“/”整除的除数与被除数类型只能为整数,若商有小数位直接截取掉不会四舍五入
自加与自减规则:前加/前减则是先加/减”1”再参与运算,后加/后减则是先参与运算后加/减”1”
public void method(){
int a = 4;
int b = ++a + 2; //b=7,a=5
int c = a++ + 4; //c=9,a=6
}
关系运算符:>,<,>=,<=,==,===(恒等于)
“==”与”===”区别:”==”只要求两值相等,”===”则要求值、类型等等完全一致
public void method(){
int a = 4;
double b = 4.0;
if (a == b){} //正确
if (a === b){} //错误,非法的表达式
}
逻辑运算符:!,&,|,&&,||(短路与/或)
“&、|”与”&&、||”区别:两者”与/或”都遵守”同真为真/有真即真”,但是前者若是第一个条件就不满足还是会执行第二个条件,这样就照成了内存浪费
public void method(){
int a = 1;
int b = 2;
if (a==2 & (b=3)==1){} //语句中条件一就不满足了,但是最后b=3,说明条件二还在继续执行
if (a==2 && (b=3)==1){} //语句中条件一就不满足了,但是最后b=2,说明条件若是有一个不满足就终止语句
}
因此,我们在写程序时要多用”&&、||”短路与/或,可以加快程序运行速度,节约内存
位运算符:&,|,^(异或),~(取反),>>,<<,>>>(无符号右移,用0填充)
“&、|”是用于源码:同1才为1、有1即为1;若”&”有负数,要先将负数取反+1;若”|”有负数,同样负数取反+1,若还要转换为十进制则再取反+1
public void method(){
int a = 4;
int b = -7;
int c = 3;
System.out.println(a&c); //值为0,原因:4=0100,3=0011,4&3=0000=0
System.out.println(a&b); //值为0,原因:7=0111,-7=1000+1=1001,-7&4=0000=0
System.out.println(a|c); //值为7,原因:4&3=0111=7
System.out.println(a|b); //值为-3,原因:-7|4=1101取反添负0010+1=0011=-3
}
“^”:相同为0,不同为1;”~”将源码取反,因为int是32位的,前面还有很多”0”,全部取反就变为负数了,若转换成十进制又要取反加”1”,最后添加负号(有个简单的技巧就是:直接加”1”再添负号)
public void method(){
int a = 9;
int b = 13;
System.out.println(a^b); //值为4,原因:9=1001,13=1101,9^13=0100=4
System.out.println(~a); //值为-10,原因:9=0000……1001,~9=1111……0110=0000……1001+1=1010=-10
}
“a<

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章