package xx;//为class文件分目录
import xx.xx//导入包中的类
public class 类名{
public static void main(String args[]){
}
}
准备工作:
jdk jre jvm gc idea pi
配置环境变量
变量名支持字母,数字,_和$,但是数字不能开头,区分大小写,长度无限制,支持中文,不能是关键字。
JAVA 强类型语言
变量必须声明类型以后,才能使用
Java数据类型:
基本类型(值)
boolean/char/byte/short/int/long/float/double
引用类型(地址(引用)——>内存区域(对象))
类 接口 数组 枚举 标注
类型 变量名【=值】;【】中可有可无
int a=5;a可变,变量5不可变,常数变量第一次出现必须带类型,以后不能带类型,带类型的叫变量声明。第一次赋值叫变量初始化。
二进制和十进制的转换
正数转换
0110 1101——>64+32+8+4+1=109
95——>95=64+16+8+4+2+1=95=0101 1111
负数转换
先取绝对值,然后按位取反,再加1(补码)
-7——>0000 0111——>1111 1000+1——>1111 1001
二进制转十进制,先减1,再按位取反,得到正数,前面加负号即可
1111 1111——>1111 1110——>0000 0001——>-1
类型可以转换(基本类型)
除了布尔,其他7种基本类型都可以转换
自动类型转换
1. 在表数范围内的常数可以自动转换
2. 表数范围小的可以自动转换表数范围大的
3. 封装类和对应的基本类型之间
4. 子类转换父类
强制类型转换(目标类型)
不能自动转换的,就强制转换
public class TestType { public static void main(String args[]) { //赋值左右类型一定一致,否则经过类型转换 byte b1=2; short s1=2; int i =2; long lo=2; b1 = (byte)i;//强制类型转换运算符 i=b1; double d1=1.0; double d2=0.41; System.out.println(d1-d2); char c1='a'; //char c2=c1+1 char c3=98; System.out.println(c1+1);//数98 System.out.println(c3);//字符 float f=2.0F; System.out.println((byte)132);//取后8位 } }
作业:
设计一个秒数换算程序(类似于倒计时)
import java.util.*; public class Miao { public static void main(String args[]) { int a; int h; int m; int s; String b; boolean x=true; do{ Scanner sc=new Scanner(System.in); //开辟空间还是有点不清楚,一个相同的变量只要开辟一个空间吗 System.out.print("请输入秒数:"); a=sc.nextInt(); h=a/3600; m=a%3600/60; s=a%3600%60; System.out.println(h+"小时"+m+"分"+s+"秒"); System.out.println("请问还要继续运算吗?"); System.out.println("继续请按y,退出请按n"); b=sc.next(); if(b.equals("y")){ //在这里我试了=,==,都没有equals好用,不知道是不是像这种情况都用equals好 x=true; //这是赋值 } else if(b.equals("n")){ x=false; //这也是赋值 System.out.println("结束"); } else { x=false; System.out.println("输入有误!结束!"); } } while (x==true); //这里才是对比,要注意,之前我只用了一个等于,导致程序死循环 //“=”是赋值,而“==”是对比,要区别和利用这两者关系 } }//要点:判断赋值相等时,尽量用equals。在do{}while()中,记住,while()里的是对比,不能填一个等于,
这节课做的笔记不是很全面,下午上课走神了-_-|||竟然开始破解无线。。。