第四天
第四天
数据类型:强类型,弱类型
Java的数据类型:基本类型,
- 数值类型(比较时只能用同种类型进行比较)
- 整数 int, byte, short, long
- 浮点数 float, double
- 字符类型 char
- boolean类型:占1位,数值只有true(1)和false(0)两个
public class 数据类型{
public static void main(String[] args){
int a=10;//常用
byte b=20;//-128~127
short c=30; long d=30L;//后面加个L
float e=40.1F;//要在数字后面加F
double f=3.14159265358979323846264333;
char g='a';//只能输一个字符 String h="adsfd";//不是类,关键字,开头要大写
boolean flag=true;
if(flag){}//内部相当于flag==ture
}
}
引用类型
- 类
- 接口
- 数组
进制:
- 二进制 ob
- 十进制 10
- 八进制 o 010
- 十六进制ox 0x10
强制转换
char c1='a';
char c2='中';
System.out.println((int)c1);
System.out.println((int)c2);
>>97(a对应的ascll码,Unicode表)
>>20013(中对应的ascll码)
char a='\u0061';>>输出的是a。
\t 制表符 \n 换行符
类型转换
- 由低到高转换:byte,short,char-->int-->long-->float-->double自动转换 如:byte b=2; int i=b 由高到低转换为强制转换 如:byte i=(int)12注意溢出问题;
- 运算中,不同类型的数据先转化为同一类型,然后进行运算
- 布尔值不能进行转换
变量:全局变量和局部变量
public class 数据类型{
int a=100;//实例变量,从属于对象。
// 一般不赋值的话它的初始化为0布尔值的话就是false。
//除了基本类型其他就是null。
static int b=200;//类变量前面要加static,从属于类
public static void main(String[] args) {
int c=300;//局部变量,存在于方法里,必须初始化,且只在花括号中间有用
}
} //类是一个独立的程序相当于这里的 数据类型 这个东西。
// 对象是一个抽象概念可以是人,也可以是事件,物品。
// 类的实体化就是对象,对象抽象化就是类。
定义常量 : final 数据类型 常量名=值(常量名一般用大写)
自增自减
- a++=a+1;a--=a-1
- ++a;--a也是加减一
- 两者的差别是++a在同一运行次数内比++a
运算符
- Math.pow(a,b)次方运算,a的b次方
- 判断>=,<=,>,<,==,!=
- +, - ,* ,?(整除,在整数型中舍去小数部分),%(取余比如11%5=1)
- ||或(一真则真) &&且(一假则假)
- 1&0=0;1|0=1;1^0=0(相同为假,不同为真);~1=0(取反)
- >>右移,<<左移(移动的是二进制的位数)
- x?y:z(x是否正确,正确为y否则为z)
- +=,-=……
练习:
1.求100个整数的和
import java.util.* ;
public class addUp {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int a=in.nextInt() ;//输入要求和的整数
int sum=0; for(int i=0;i<=a;i++){//for循环
sum+=i;//求和
}
System.out.println(sum);
}
}
2.字符串操作:创建字符串数组,并将其元素转换为大输出
public class moreword {
public static void main(String [] args){
int[] a={1,2,3,4,5,6,7,8,9,10};//new对于数组有无没什么差别
int[] b=new int[]{1,2,3,4,5,6,7,8,9,10};
String[] c={"wee","efe","efr"};//String有new引用变量推向堆区,无指向常量池
String[] d=new String[]{"rtr","tgt","rtth"};
for(int i=0;i<c.length ;i++){//c.length是求c的里面的个数
System.out.println(c[i].toUpperCase());//用函数toUpperCase,变小也有相对应的函数。
}
}
}
储存区域:
- 栈区:由编译器自己分配的内存,会自己释放,连续储存
- 堆区:由程序员自己分配的内存,要人为释放,不连续储存(不释放会占据空间)
- 全局区:储存全局变量和静态变量,系统自动
- 文字常量区:储存常量字符串
- 程序代码区:存放函数体的二进制代码
思考题
1. 编写求圆的面积的程序。
2. 编写前n个自然数的和的程序。
3. 编写判断一元二次方程根的情况的程序。
4. 编写Java Applet程序实现上述功能(选做)。
浙公网安备 33010602011771号