1. JDK:Java Development Kit 【Java开发包】
2. JRE:Java Runtime Environment 【Java运行时环境】
3. JVM:Java Virtual Machine 【Java虚拟机】
JDK7
JDK8
新建一个文件【文件名HelloWorld文件名和文件里的class后面的要一致】,将后缀改为.java
在里面编写代码
public class HelloWorld{ //HelloWorld与文件名一致
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
控制台进到文件目录,进行编译
javac HelloWorld.java
运行
java HelloWorld
下载安装包,安装
安装时需要根据电脑版本选择是 “.32” 还是 “.64” ,还有勾选 ".java" 。
破解
1、psvm + enter 可以快速补充
public static void main(String[] args) {
}
2、sout + enter 可以快速补充
System.out.println();
3、Ctrl + d 复制当前行到下一行
1、//单行注释 //
2、//多行注释 /* 注释 */
3、//JavaDOC /** 文档注释 */
1、所有标识符首字母必须以字母(A-Z,a-z),美元符号($),下划线(—)开始
2、首字母之后可以任意
3、大小写敏感
4、不能使用关键字作为变量名和方法名
5、String不是关键字,是一个类
1、java是强类型语言【变量使用复合类型且必须先定义再使用】
2、两大类【基本类型、引用类型】
3、primitive type 基本类型 【byte(1B)、short(2B)、int(4B)、long(8B)、float(4B)、double(8B)、char(2B)、boolean(1b)】【long类型要在后面加上L,float要在后面加F】
4、reference type 引用类型 【类、接口、数组】
public class Demo01 {
public static void main(String[] args) {
//====================================================
//int型 【int(4B)】
//====================================================
int i = 10;
int i2 = 010; //八进制0
int i3 = 0x10; //十六进制 0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("====================");
//====================================================
//float型 && double型 【float(4B)、double(8B)】
//====================================================
float f = 0.1f;
double d = 1.0/10;
System.out.println(f);
System.out.println(d);
System.out.println(f==d);
System.out.println("====================");
//====================================================
//浮点数拓展? 银行业务怎么表示?钱
//BigDecimal 数学工具类
//====================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//最好完全避免使用浮点数标记!!!
//最好完全避免使用浮点数标记!!!
//最好完全避免使用浮点数标记!!!
float d1 = 23169541465661f;
float d2 = d1 + 1 ;
System.out.println(d1==d2);
System.out.println(d1);
System.out.println(d2);
System.out.println("====================");
//====================================================
//char型 【char(2B)】
//字符拓展?
//所有字符本质还是数字 编码 Unicode 2字节 0-65536 Excel 2^16 = 65536
//====================================================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
System.out.println("====================");
//转义字符
// t 制表符 tab
// n 换行
System.out.println("hellothello");
System.out.println("hellonhello");
System.out.println("====================");
//====================================================
//boolea型 【boolean(1b)】
//====================================================
boolean flag = false;
if(flag == true){ } //新手
if(flag){} //老手
//上面两个if判断功能一致
//====================================================
//String 不是数据类型,它是一个类!!!!!!
//====================================================
String s1 = new String("nihao");
String s2 = new String("nihao");
String s3 = "nihao";
String s4 = "nihao";
System.out.println(s1==s2);
System.out.println(s3==s4);
System.out.println("====================");
}
}
注意点:
1、不能对boolean类型进行转换
2、不能将最想类型转换为不相干的类型
3、转换的时候可能存在内存溢出、或者精度问题
低--->高:byte , short , char , int ,long , float , double
package base;
public class Demo02 {
public static void main(String[] args) {
//强制转换 高到低 (类型)变量名
//自动类型转换 低到高
int i = 128;
byte b = (byte)i; //内存溢出
double d = i;
System.out.println(i);
System.out.println(b);
System.out.println(d);
System.out.println("===============================");
System.out.println((int)23.7);
System.out.println((int)-45.75f);
System.out.println("===============================");
char c = 'a';
int i2 = c+1;
System.out.println(i2);
System.out.println((char)i2);
System.out.println("===============================");
//操作比较大的数,注意溢出
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years; //负数,计算溢出
long total2 = money*years; //负数,计算之后转换为long类型,同样会溢出
long total3 = money*((long)years); //先将years强转为long,再计算
System.out.println(total);
System.out.println(total2);
System.out.println(total3);
/*
小写的L(即l)也可以,但是在编写软件里,他和1非常相似,为避免认错,代码规范易读都用L来标记long类型
*/
}
}
注意点:
1、每个变量都要有类型
2、变量名必须是合法的标识符
3、变量生命是一条完整的语句,所以必须以分号结束
4、不建议一行定义多个变量
package base;
public class Demo03 {
//变量 type varName [=value][{varName[=value]}];
//常量一般用大写 final
static double salary = 2500;
String name;
int age;
//修饰符不存在先后顺序
static final double PI = 3.14;
public static void main(String[] args) {
int i = 10;
System.out.println(i);
Demo03 demo = new Demo03();
System.out.println(demo.name);
System.out.println(demo.age);
System.out.println(salary);
System.out.println(PI);
}
//外部方法
public void add(){
//***
}
}
算数运算符:+ - * / %(取余/模) ++(自增,一元运算符) --(自减,一元运算符)
赋值运算符:=
关系运算符:> = > >>(了解!!!)
条件运算符:? :
扩展赋值运算符:+= -= *= /=
package base;
public class Demo04 {
public static void main(String[] args) {
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);
System.out.println("================================");
long aa = 123123123123L;
int bb = 123;
short cc = 10;
byte dd = 8;
System.out.println(aa+bb+cc+dd); //long 最高
System.out.println(bb+cc+dd); //int
System.out.println(cc+dd); //int
System.out.println("================================");
//关系运算符返回结果 true false
int a2 = 10;
int b2 = 20;
int c2 = 21;
System.out.println(a2>b2);
System.out.println(a2
boolean f1 = true;
boolean f2 = false;
//短路原则
System.out.println(f2&&f1); //因为逻辑与是全为真则结果为真,所以在判断法等于false时,就不会再执行f1的判断了
//验证短路原则
int flag = 5;
boolean f3 = (flag
**左移 ** 相当于*2
>> **右移 ** 相当于/2
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 全为1,则为1
A|B = 0011 1101 都为0,则为0
A^B = 0011 0001 异或 相同则为0,否则为1
~B = 1111 0010 取反
2*8 = 16 = 2*2*2*2
> 右移 相当于/2
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8
0001 0000 16
*/
System.out.println(2
String s1 = new String("nihao");
String s2 = new String("nihao");
String s3 = "nihao";
String s4 = "nihao";
System.out.println(s1==s2);
System.out.println(s3==s4);
输出结果:
flash
true
int a = 10;
int b = 20;
System.out.print("" "+a+b:");
System.out.println(" "+a+b);
System.out.print("a+b+" "
System.out.println(a+b+" ");
输出结果:
" "+a+b:1020
a+b+" ":30
y = x++;和z = ++x;输出区别(各自结果)
int x = 1; //x=1
int y = x++; //y=1,x=2【先将x赋给y,在x+1】
System.out.println(x); //x=2
int z = ++x; //x=3【先x+1,再将x赋给z】
System.out.println(x); //3
System.out.println(y); //1
System.out.println(z); //3
输出结果:
3
1
3
为了更好地组织类
一般利用公司与组织的倒名作为包名(http://baidu.com就是com.baidu)
import 导包
防止命名空间重复
Javadoc命令是用来生成自己的API文档
可用的参数信息:
cmd输出API帮组文件方式
进到文件位置(namespace位置)
javadoc -encoding UTF-8 -charset UTF-8 文件名.java【要生成API的java类名】
参与评论
手机查看
返回顶部