第一个Java程序
public class Hello{
public static void main(String[] args){
//输出
System.out.print("Hello,World");
}
}
强类型语言
要求变量的使用严格符合规定,所以变量都必须先定义后才能使用
弱类型语言
可以先使用后定义
1. 注释
书写注释是一个非常好的习惯
java中的注释有三种
- 单行注释
- 多行注释
- 文档注释
//快速输出mian方法 psvm
//快速打出输出语句 sout
##单行注释
//单行注释 输出一个hello,world!
##多行注释
/*
多行注释
注释
注释
*/
##javadoc:文档注释
/**
* 这是文档注释
* @ Description Helloworld
* @ Author wgdwgd
*/
2.标识符
关键字
java 所有的组成部分都需要名字 , 类名/变量名 以及方法名都被称为标识符
数据类型
-
强类型语言
要求变量的使用严格符合规定,所有变量都必须先定义后才能使用
-
java的数据类型分为两大类型
基本类型
引用类型
##八大基本数据类型
//整数类型
int a =10; //范围 -2147483648~2147483647
byte b=20; //范围 -128~127
short c=30; //范围 -32768~32767
long d=40L; //范围 -9223372036854775808~9223372036854775807 需要在后面加个L
//浮点类型
float e=13.1F; // 需要在后面加一个F
double f= 13.15154;
//字符类型
char name= 'A'; //占位两个字节
//字符串 ,String 不是关键字 ,是一个类
//String g="帅书店";
//布尔值
boolean flag=true; //是
boolean sss = false; //否
##拓展
// 整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int a=10 ;//十进制
int b=010;//八进制
int c=0x10;// 十六进制
System.out.println(a); //结果 10
System.out.println(b); // 结果 8
System.out.println(c); //结果 16
System.out.println("==================================================");
//浮点数拓展
float d=0.1f; //0.1
double e=1.0/10; //0.1
System.out.println(d==e); // 结果 false
System.out.println(d); // 结果 0.1
System.out.println(e); //结果 0.1
float d1 =132135135f;
float d2 =d1+1;
System.out.println(d1==d2);//true
// 缺点: 有限 离散 舍入误差 大约 接近但不等于 不要用浮点数进行比较
//BigDecimal 数学工具类
// 字符拓展
System.out.println("===================");
char c1 = 'a';
char c2 ='中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
//所有的字符本质还是数字
//转义字符
// \t 制表符
// \n 换行
System.out.println("hello\t wprld");
System.out.println("hello\n wprld");
System.out.println("======================");
String sa=new String("hello world");
String sb=new String("hello world");
System.out.println(sa==sb); // 结果false
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd); // 结果true
//布尔值扩展
boolean flag =true;
if (flag==true){ //或者也可以 flag
}
类型转换
int i=128;
byte b=(byte)i; //转换类型 : 强制转换 高 --低
// 强制转换 (类型) 高--低
// 自动转换 低--高
System.out.println(i); // 128
System.out.println(b); // -128 内存溢出 因为最大是-128~127
/*
注意点:
1. 不能对布尔值进行转换
2. 不能把对象类型转换为不相干的类型
3. 在把高容量转换到低容量的时候,强制转换
4. 转换的时候可能存在内存移除,或者精度问题
*/
System.out.println("===========");
System.out.println((int)23.7); // 23
System.out.println((int)-15.35f); // -15
System.out.println("==============");
char a='a';
int d=a+1;
System.out.println(d); // 低转高所以不需要强制转换 结果是98
System.out.println((char) d); //高转低 需要强制转换 结果是b
//操作比较大的数的时候 ,注意溢出问题
//jdk新特性,数字之间可以用下划线分割
System.out.println("================");
int duo = 10_0000_0000;
int nian =20;
int q=duo*nian; //计算溢出了 结果是-1474836480
long q1=duo*nian; //默认是int ,转换之前已经存在问题了
long q2=duo*((long) nian); //提升为long 运算解决问题输出200 0000 0000
System.out.println(q);
System.out.println(q1);
System.out.println(q2);
Java浮点数
BigDecimal数据类型
- 四舍五入规则
ROUND_UP //大于0就舍入 如4.411 -> 4.42
ROUND_DOWN //要求小数位之外的小数全部舍去 如4.419 -> 4.41
ROUND_CEILING //向大的“邻居数”靠拢 如4.411 -> 4.42 -4.419 -> -4.41
ROUND_FLOOR //向小的”邻居数“靠拢 如4.419 -> 4.41 -4.411 -> -4.2
ROUND_HALF_UP //大于等于0.5时发生舍入 如4.415 -> 4.42
ROUND_HALF_DOWN //大于0.5才发生舍入等于0.5时不发生舍入 如4.4151 ->4.42 4.415 -> 4.41
实际应用
- 浮点数设置精度3并设置大于0.5时才发生舍入
new BigDecimal(3.4485).setScale(3,BigDecimal.ROUND_HALF_DOWN).doubleValue();
变量
public class Demo04 {
//可以定义 属性:变量
//实例变量:从属于对象;
// 如果不自行初始化.这个类型的默认值0或者0.0
// 布尔值:默认是false
// 除了基本类型,其余的默认值都是null;
String wc;
int age;
//类变量 static
static double salary=2500;
//main 方法
public static void main(String[] args) {
// 变量篇
int a=1;
int b=2;
int c=4; //也可以 int a=1,b=2,c=3; (不建议使用这样定义)
String name="wgd";
char x='x';
double p =1546.454;
//局部变量
int i=10;
System.out.println(i);
//变量类型
System.out.println("==========");
Demo04 demo04 = new Demo04();
System.out.println(demo04.wc);
System.out.println(demo04.age);
System.out.println("===========");
System.out.println(salary);
}
//其他方法
public void add(){
//System.out.println(i); // 输出无效
}
}
常量
public class Demo05 {
//常量篇
// static 和 final 都是修饰符 ,不存在先后顺序
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}