尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

JAVA第三课

JAVA第三课 跟日记本一起学JAVA相信你可以的加油~本课闯关内容1.照猫画虎0/62.熟悉基础知识(0/6)基础知识1数据的自动类型提升1.两个变量之间相互赋值。自动类型提升规则如下:(1)byte - short -int -long - float - double小数据类型的变量可以直接赋值为大数据类型的变量就自动提升为大数据类型:(2)char - int -long -float-double解析下面的byte s 23;int C s;s的类型是byte把s赋给int的C解析下面的char cs A;int is cs;cs的类型是char把cs赋给int的is2.强制类型转换:(1).大数据类型的变量赋值给小数据类型需要用到强制类型转换强制类型转换问语法目标类型空格变量名 (目标类型)源数据类型的变量名;例如double d 12.5;int i (int)d;System.out.println(i);注意这里由小数换为整数不会四舍五入而是直接显示的是12好啦这就是之后要讲的“后果”了。2强制转换的结果1.整数类型的变量中的数据合理数据强转结果完整例如int i 15;byte b (byte) i ; //结果打印152.整数类型的变量中的数据不合理数据强转结果截断例如 int i 257;byte b (byte)i; //结果13.小数据类型变量强制转换为整数类型直接截断取整数部分例如double d 12.9;int i (int)d ; //结果12注意 boolean 类型的变量不能参与数据类型的提升。解析下面的double d 23.7;//源类型int x (int)d;//目标类型int -强制类型转换System.out.println(x);//显示的是23小数据类型变量强制转换为整数类型直接截断取整数部分解析下面的int b2 35;//4Bbyte y (byte)b2;//1BSystem.out.println(y);整数类型的变量中的数据合理数据强转结果完整照猫画虎1代码package demo; public class Test4{ public static void main(String[]args){ int a 2; int b a; System.out.println(a); System.out.println(b); byte s 23;//存储1B int C s;//存储4B,自动类型提升4B1B小类型放到大类型 System.out.println(C); char cs A;//65 int is cs; System.out.println(cs); System.out.println(is); double d 23.7;//源类型 int x (int)d;//目标类型int -强制类型转换 System.out.println(x);//显示的是23 int b2 35;//4B byte y (byte)b2;//1B System.out.println(y); } }基础知识2这一块主要是表达式的运算规则表达式的概念由变量、运算符、字面值等组成一个式子通常会有一个结果产生。两变量参与运算表达式的结果类型规则如下1.如果参与运算的变量有一个为double类型,结果就是double类型;2.如果参与运算的变量没有double类型有一个为float类型,结果类型为float3.如果参与运算的变量没有double/float有一个为long类型结果类型为long4.其余的情况全都是int类型的结果。例如byte b 1;byte b2 b 1; //编译报错违反了两个变量参与运算的提升规则结果应为int类型这里b2之前的byte应该改成int因为没有特殊的类型所以就按int类型。解析下面的int a 3;int b 5;System.out.println(ab);int r ab;System.out.println(r);全都是 int 类型的结果也为int类型。解析下面的double d 12.6;int x 2;double d2xd;System.out.println(d2);如果参与运算的变量有一个为double类型 ,结果就是double类型;解析下面的byte bs1 1;byte bs2 2;int bs3 bs1bs2;//注意不能存储在byte中System.out.println(bs3);因为没有特殊的类型所以就按int类型。照猫画虎2代码package demo; public class Test5{ public static void main(String[]args){ int a 3; int b 5; System.out.println(ab); int r ab; System.out.println(r); double d 12.6; int x 2; double d2xd; System.out.println(d2); byte bs1 1; byte bs2 2; int bs3 bs1bs2;//注意不能存储在byte中 System.out.println(bs3); } }基础知识31.算数运算符加-减*乘/除%取模、取余数注意如果两端有一个数类型为String(字符串类型)则代表字符串的拼接或是连接。2.赋值运算符 * - / %注意等综合运算符没有自动类型提升。练习①byte b 1;b b1; //编译不通过结果类型应为int类型②byte b 1;b 1; //编译通过结果为2从左往右计算解析int a 5;int b 2;System.out.println(ab);//7System.out.println(a-b);//3System.out.println(a*b);//10System.out.println(a%b);//1System.out.println(a/b);//25除2为2.5因为都是整型直接截断结果为2System.out.println(a/b*1.0);//2.0从左往右计算5除2为2.5因为都是整型直接截断结果为2后面又乘1.0有小数点了是double类型如果参与运算的变量有一个为double类型,结果就是double类型;结果为2.0知识串起来了~~~~~~啊啊啊啊啊System.out.println(1.0*a/b);//2.5从左往右计算a变成double类型为5.0再除b,结果为2.5System.out.println((double)a/b);//2.5把a转换成double类型小类型直接转换大类型再去除注意如果两端有一个数类型为String(字符串类型)则代表字符串的拼接或是连接。java中的两种用法1.加法运算: 两端都为 数据类型2.字符串的拼接 两端只要有一段为字符串为字符串的拼接只要“”两端有一 个数类型为String(字符串类型)碰上它的都会变成字符串很强大啊解析int a 5;int b 2;String s1 hello;String s2 world;System.out.println(s1s2);System.out.println(s2a);//world5System.out.println(s2true);//worldtrue//System.out.println(atrue);//编译报错//System.out.println(atrue);System.out.println(hello35);System.out.println(35hello);System.out.println(hello(35));System.out.println(hellotrue35);//System.out.println(true35hello);//编译报错//思考ab7System.out.println(ab(ab));int x 3;int y 5;System.out.println(xy(xy));//xy8System.out.println(xy(xy));//358,但是结果需要随着x,y中的数据发生改变如果x5x9 -5914, 错误的写法“35”8}}从左往右计算数据类型会由前面的数据类型决定当然如果你想不由前面决定可以加括号。就像 System.out.println(hello(35));结果hello8运行结果helloworldworld5worldtruehello358hellohello8hellotrue35ab7xy88xy编译报错的原因一个int类型一个布尔类型这个加号是加法不是拼接重点布尔类型不参与加法运算可以参与字符串的拼接System.out.println(atrue);//编译报错编译报错的原因一样从左往右看布尔类型不参与加法运算System.out.println(true35hello);//编译报错照猫画虎3代码package demo; public class Test6{ public static void main(String[]args){ int a 5; int b 2; System.out.println(ab);//7 System.out.println(a-b);//3 System.out.println(a*b);//10 System.out.println(a%b);//1 System.out.println(a/b);//2,因为都是整型 System.out.println(a/b*1.0);//2.0 System.out.println(1.0*a/b);//2.5 System.out.println((double)a/b);//2.5 /*java中的两种用法 1.加法运算: 两端都为 数据类型 2.字符串的拼接 两端只要有一段为字符串为字符串的拼接 */ String s1 hello; String s2 world; System.out.println(s1s2); System.out.println(s2a);//world5 System.out.println(s2true);//worldtrue //System.out.println(atrue);//编译报错 //System.out.println(atrue); System.out.println(hello35); System.out.println(35hello); System.out.println(hello(35)); System.out.println(hellotrue35); //System.out.println(true35hello);//编译报错 //思考ab7 System.out.println(ab(ab)); int x 3; int y 5; System.out.println(xy(xy));//xy8 System.out.println(xy(xy));//358,但是结果需要随着x,y中的数据发生改变如果x5x9 -5914, 错误的写法“35”8 } }基础知识4关系运算符大于大于等于小于小于等于不等于!如果用关系运算符连接两个变量用于判断关系是否成立关系成立-true关系不成立-flase,结果类型为boolean类型的表达式称为布尔表达式。逻辑运算符1. :逻辑与只有当两边都为true的情况下结果才为true。有一个为false,结果就是false;(短路)2.||逻辑或只有两端有一个为true结果就是为true同时为false结果才为false.(短路)3.! :逻辑非对结果取反。4.与只有当两边都为true的情况下结果才为true。(非短路)5.| :或只有两端有一个为true结果就是为true同时为false结果才为false.(非短路)和的区别相同点与的关系两边布尔表达式同时为true结果才为true.不同点 :短路运算符一旦第一个布尔表达式的结果为false后面的布尔表达式不在运算非短路运算符不管前面的布尔表达式是否为false,后面的布尔表达式必须执行。条件运算符三元运算符、三目运算符布尔表达式?表达式1:表达式2执行的原理如果布尔表达式结果为true,执行表达式1如果为false,执行表达式2。运行结果falsetruefalsetruefalsefalsetruetruefalsetrue及格25不是c语言的1和0照猫画虎4代码package demo; public class Test7{ public static void main(String[]args){ int a 3; int b 5; System.out.println(ab);//35,关系不成立结果是false System.out.println(b8);//关系成立结果是true System.out.println(a3);//false System.out.println(a3);//true,60临界值 System.out.println(a!3);//false //:逻辑与两端都为布尔类型或布尔类型的字面值只有当两端都为true,结果才为true System.out.println(abb8);//f System.out.println(a1b8);//t //||:逻辑或两端都为布尔类型或布尔类型的字面值只有一端为true,结果就为true System.out.println(ab||b8);//35||58 System.out.println(ab||b3);//35||53 // !:逻辑非在结果上取反 System.out.println(!(ab||b3)); double score 78.5; String r score60 ? 及格:不及格; System.out.println(r); int x 35; System.out.println(x50?x10:x-10);//25 } }基础知识5一元运算符自增--自减1a :先使用a原始数据作为表达式的结果再将a自身加1先使用再加int a 1;int c a ;便于理解也可以写成int c a ;a a1;结果都为c 1; a 2;2a先将a的数据加1运算再使用a中的数据作为表达式的结果。先加再使用运行结果a5b2c2假如改变代码变为int b 1;int cb;//先使用再加1int c 1; bb1;//int c b;//先加1在使用bb12,int c b2System.out.println(bb);System.out.println(cc);结果为b2c1这就是因为先把b1给c,c1然后再把b自加1b变为2照猫画虎5代码package demo; public class Test{ public static void main(String[]args){ int a 3; //自身加1 --自身减1 //a/a a--/--a a;//等价于aa1 a; a; a; a--; --a; System.out.println(aa); int b 1; //int cb;//先使用再加1int c 1; bb1; int c b;//先加1在使用bb12,int c b2 System.out.println(bb); System.out.println(cc); } }基础知识6Scanner扫描仪使用的步骤创建扫描仪创建就写入这个代码java.util.Scanner sc new java.util.Scanner(System.in);使用输入一个整数int a sc.nextInt();输入一个小数double s sc.nextDouble();输入一个字符串String s sc.next(); // String s sc.nextLine();输入一个字符char c sc.next().charAt(0);在输入前你需要给输入者一个提示System.out.println(请输入一个XX);练习定义两个int类型的变量x,y,利用Scanner输入数据计算xy的结果并格式化打印代码System.out.println(请输入两个整数);int x sc.nextInt();int y sc.nextInt();System.out.println(xy(xy));照猫画虎6代码package demo; import java.util.Scanner;//1.导入包 public class Test9{ public static void main(String[]args){ int a 7; System.out.println(aa); //2.创建Scanner对象 Scanner sc new Scanner(System.in); System.out.println(请输入一个整数); int n sc.nextInt(); System.out.println(nn); System.out.println(输入一个小数); double d sc.nextDouble(); System.out.println(dd); System.out.println(输入一个字符串); String str sc.next(); System.out.println(strstr); System.out.println(输入一个字符); char cs sc.next().charAt(0); System.out.println(cscs); /*定义两个int类型的变量x,y,利用Scanner输入数据计算xy的结果并格式化打印 例如 x5 y9,输出 5914 x2 y7,输出 279 */ System.out.println(请输入两个整数); int x sc.nextInt(); int y sc.nextInt(); System.out.println(xy(xy)); } }跟我一步步学慢慢走踏实学。未完待续。。。
返回列表