//常量
package cn.itcast.work2;
public class Constant { //constant 常量
public static void main(String[] args) { /* * 字符串常量 用双引号括起来的内容 * 整数常量 所有整数 * 小数常量 所有小数 * 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 * 布尔常量 较为特殊,只有true和false * 空常量 null(数组部分讲解) */ System.out.println("abc"); //字符串常量 System.out.println(123); //整数常量 System.out.println(12.3); //小数常量 //System.out.println('10'); //''中必须放的是单个字符,10代表的是1字符和0字符 //System.out.println(''); //''中什么也不放,也是不可以的,因为代表不了任何字符 System.out.println(' '); //带表空格字符 System.out.println(true); //boolean类只有两个值,true和false System.out.println(false); }}运行结果:
//进制转换
package cn.itcast.work2;public class Scale { //scale 进制
public static void main(String[] args) { /* * 0b100 * 0100 * 100 * 0x100 *///System.out.println(0b100); //4? 二进制表示形式前面加0b(b可以大写也可以小写) System.out.println(0100); //64? 八进制表示形式前面加0 System.out.println(100); System.out.println(0x100); //256? 十六进制表示形式前面加0x(可以大写也可以小写) }}运行结果:
//数据类型转换1
package cn.itcast.work2;public class DataType1 {
public static void main(String[] args) { //整数类型 byte b = 10; //占一个字节,-128 到 127 short s = 20; //占两个字节 int i = 30; //占四个字节 整数默认的数据类型就是int类型 long x = 8888888888L; //占八个字节 如果long类型后面加L进行标识最好加大L,因为小l太像一了 System.out.println(b); System.out.println(s); System.out.println(i); System.out.println(x);//System.out.println(12345 + 54321l);
//浮点类型
float f = 12.3F; //占四个字节 double d = 33.4; //占八个字节 小数默认的数据类型是double,double类型后面也可以用D或d标识,但是一般不加 System.out.println(f); System.out.println(d);//字符类型
char c = 'a'; //占两个字节 System.out.println(c);//布尔类型
boolean b1 = true; boolean b2 = false; System.out.println(b1); System.out.println(b2); }}运行结果:
//数据类型转换2
package cn.itcast.work2;public class DataType2 {
public static void main(String[] args) { /* * a:作用域问题 * 同一个区域不能使用相同的变量名 * b:初始化值问题 * 局部变量在使用之前必须赋值 * c:一条语句可以定义几个变量 * int a,b,c...; */ /*int x = 10; int x = 20;System.out.println(x);
int y;
y = 10;
System.out.println(y);*/int a,b,c,d,e;
a = 10;
b = 20; c = 30; d = 40; e = 50;System.out.println(a);
int x = 10;
int y = 20; int z = 30; }}运行结果:
//数据类型转换3
package cn.itcast.work2;public class DataType3 {
public static void main(String[] args) { //数据类型转换之隐式转换/*int x = 3;
byte b = 4;x = x + b;
System.out.println(x);*/
//数据类型转换之强制转换
/*int x = 3; byte b = 4;b = (byte)(x + b);
System.out.println(b);*///00000000 00000000 00000000 10000010 130的二进制
//10000010 -126补码 //00000001 -1求反码 //10000001 -126反码 //11111110 -126原码 byte b = (byte)(126 + 4); System.out.println(b); //00000000 00000000 00000001 00101100 300的二进制 //00101100 byte b2 = (byte)300; System.out.println(b2); }}运行结果:
//数据类型转换4
package cn.itcast.work2;public class DataType4 {
public static void main(String[] args) { //System.out.println('a' + 1); //98,因为有ASCII码表,a字符对应的是int类型的97 //System.out.println((char)('a' + 1));System.out.println("hello"+'a'+1); //任何数据类型用+与字符串相连接都会产生新的字符串
System.out.println('a'+1+"hello");System.out.println(" 5 + 5 = " + (5 + 5));
}}运行结果:
//数据类型转换5
package cn.itcast.work2;public class DataType5 {
public static void main(String[] args) { char c = 'a'; System.out.println(c);byte b = 100;
char c1 = 97; //0 - 65535 System.out.println(c1);char c2 = 3;
char c3 = 4; char c4 = 5; char c5 = 6;System.out.println(c2);
System.out.println(c3); System.out.println(c4); System.out.println(c5);//char类型是否可以存储中文
char c6 = '中'; System.out.println(c6); }}运行结果:
//算术运算符1
package cn.itcast.work2;public class Operator {
public static void main(String[] args) { /* * a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符 * b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型 * c:/获取的是除法操作的商,%获取的是除法操作的余数 * %运算符 * 当左边的绝对值小于右边绝对值时,结果是左边 * 当左边的绝对值等于右边或是右边的倍数时,结果是0 * 当左边的绝对值大于右边绝对值时,结果是余数 * %运算符结果的符号只和左边有关系,与右边无关 * 任何一个正整数%2结果不是0就是1可以用来当作切换条件 *///System.out.println(10 / 3); //整数相除结果只能是整数
//System.out.println(10 / 3.0); //如果想得到小数,把其中一个数变成小数,另一个数在运算的时候会自动类型提升 //System.out.println(-5 % 5); System.out.println(13 % -5); }}运行结果:
//算术运算符2
package cn.itcast.work2;public class Operator2 {
/* * a:单独使用: * 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的) * b:参与运算使用: * 放在操作数的前面,先自增或者自减,然后再参与运算。 * 放在操作数的后面,先参与运算,再自增或者自减。 */ public static void main(String[] args) { //单独使用 /*int a = 3; //a++; //a = a + 1; ++a; //a = a + 1; System.out.println(a);*///参与运算使用
int a = 3; int b;//b = a++; //当++在变量后面的时候,会先将变量中的值取出做赋值操作,然后再自身加1
b = ++a; //当++在变量前面的时候,会先自身加1,然后在将结果赋值 System.out.println("a = " + a); System.out.println("b = " + b); }}运行结果:
//赋值运算符
package cn.itcast.work2;public class Operator3 {
public static void main(String[] args) { //赋值运算符 int a = 3; //把右边的常量值赋值给左边的变量,左边必须是变量//a += 4; //a = a + 4;
a = a + 4; System.out.println(a); }}运行结果:
//关系运算符
package cn.itcast.work2;public class Operator4 {
public static void main(String[] args) { //关系运算符 //==,!=,>,>=,<,<= System.out.println(4 == 3); System.out.println(4 != 3); System.out.println(4 > 4); System.out.println(4 >= 4); System.out.println(4 < 3); System.out.println(4 <= 3); }}运行结果:
问题 1:什么是变量?变量的定义格式?要使用变量需要注意什么?
答:
* A:什么是变量
* 在程序执行的过程中,在某个范围内其值可以发生改变的量* B:变量的定义格式 * 数据类型 变量名 = 变量值;* C:为什么要定义变量 * 用来不断的存放同一类型的常量,并可以重复使用问题 2:Java中的数据类型分几类?基本数据类型有哪些?
答:
* A:为什么有数据类型
* Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间* B:Java中数据类型的分类 * 基本数据类型 * 引用数据类型 * 面向对象部分讲解 * C:基本数据类型分类(4类8种) * 整数型 * byte 占一个字节 -128到127 * short 占两个字 -2^15~2^15-1 * int 占四个字节 -2^31~2^31-1 * long 占八个字节 -2^63~2^63-1 * 浮点型 * float 占四个字节 -3.403E38~3.403E38 单精度 * double 占八个字节-1.798E308~1.798E308 双精度 * 字符型 * char 占两个字节 0~65535 * 布尔型 * boolean * boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小问题 3:数据类型转换:
隐式转换: 强制转换: 面试题: 第一题: byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么呢?第二题:
byte by = 130;有没有问题?有问题如何解决?结果是多少呢?第三题:
byte b = 10; b++; b = b + 1; 哪句是编译失败的呢?为什么呢? 问题 4:常见的算术运算符有哪些? +运算符的作用有哪些? 除法和取余的区别? ++和--的使用规则?答:
* 算数运算符有哪些
* +,-,*,/,%,++,-- * 注意事项: * a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符 * b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型 * c:/获取的是除法操作的商,%获取的是除法操作的余数 * %运算符 * 当左边的绝对值小于右边绝对值时,结果是左边 * 当左边的绝对值等于右边或是右边的倍数时,结果是0 * 当左边的绝对值大于右边绝对值时,结果是余数 * %运算符结果的符号只和左边有关系,与右边无关 * 任何一个正整数%2结果不是0就是1可以用来当作切换条件(算术运算符++和--的用法)
* 自加(++)自减(--)运算 * ++:自加。对原有的数据进行+1 * --:自减。对原有的数据进行-1 * a:单独使用: * 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的) * b:参与运算使用: * 放在操作数的前面,先自增或者自减,然后再参与运算。 * 放在操作数的后面,先参与运算,再自增或者自减。问题 5:常见的赋值运算符有哪些?
+=运算的作用是什么? 扩展的赋值运算符有什么特点?答:
* A:赋值运算符有哪些
* a:基本的赋值运算符:= * 把=右边的数据赋值给左边。 * b:扩展的赋值运算符:+=,-=,*=,/=,%= * += 把左边和右边做加法,然后赋值给左边。问题 6:short s = 1; s = s + 1;有没有问题?如果有怎么解决?
short s = 1; s += 1;有没有问题?如果有怎么解决?问题 7:常见的关系运算符有哪些?
关系运算符的结果有什么特点?
答:* A:关系运算符有哪些(比较运算符,条件运算符)
* ==,!=,>,>=,<,<= * 注意事项: * 无论你的操作是简单还是复杂,结果是boolean类型。 * "=="不能写成"="。