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()里的是对比,不能填一个等于,
这节课做的笔记不是很全面,下午上课走神了-_-|||竟然开始破解无线。。。