Java概述

来源:互联网 发布:餐厅门店经营数据 编辑:程序博客网 时间:2024/04/30 09:00
一.变量 1. 变量:在程序的执行过程中,某一个范围内其值发生改变的量! 2. 基本数据类型: a.整数类型:(默认类型) byte:字节类型 short:短整型 int:整数类型默认该类型 long:长整型 b.浮点类型:默认double类型 单精度:float类型 双精度:double类型 c.字符类型:char d.布尔类型:boolean 默认值:falsepublic class DataTypeDemo {public static void main(String[] args) {// byte类型byte b = 100;System.out.println(b);}}public class DataTypeDemo {public static void main(String[] args) {// 短整型short s = 40 ;System.out.println(s);}}//浮点类型:默认double类型double d = 12.56 ;System.out.println("d:"+d);//单精度float f = 12.34F ;System.out.println("f:"+f);//由于浮点类型存储和整数类型的存储不一致.导致:永远是一个近似值:BigDecimal// System.out.println(1.0-0.32);//char类型char ch = 'A' ;System.out.println(ch);//boolean类型boolean flag = true;System.out.println(flag); public class variables { public static void main(String[] args) { int a = 10 ; int b = 20 ; int max = (a>b)? a:b; System.out.println(max); } } 3. 定义变量的注意事项:1)在java中,定义一个变量不能重复定义 2)建议不要再同一行上定义多个变量 3)定义变量不能以数字开头 javascript:web前端 定义变量可以重复定义,后面定义的变量会覆盖前面定义的变量public class DataTypeDemo2 {public static void main(String[] args) {//定义变量int a = 10 ;// int a = 20 ;a = 20 ;//一行定义多个变量,中间用逗号隔开// int m = 10 ,n = 20 ,x = 30 ;int m = 10 ;int n = 20 ;int x = 30 ;//不能以数字开头 4. 对变量进行数据操作的时候,比如求和,这几个数据的数据类型应该一致! * 面试题:byte b1=3,b2=4,b;b=b1+b2;b=3+4;哪句是编译失败的呢?为什么呢第一句编译失败:存在默认类型转换,如果想让改代码不报错,正常运行,必须强制类型转换强制类型转换的格式;目标数据类型 变量名 = (目标数据类型)(值);强制类型转换的缺点:会损失精度,不建议强制类型转换! 默认类型提升:byte,short,char之间不转换,但是一旦参与运算先提升--->int--->long--->float--->double第三句话:b = 3 + 4 ;属于常量相加,先相加---->看结果是否在当前该数据类型范围内,在就不会报错!public class DataTypeDemo3 {public static void main(String[] args) {byte b1 = 3,b2 = 4 ,b ;// b = b1 + b2 ;//错误的:byte类型不可能接收一个int类型的值b = (byte)(b1 + b2) ;b = 3 + 4 ;System.out.println("b:"+b);}} 面试题byte b = 130;有没有问题?如果我想让赋值正确,可以怎么做?结果是多少呢?有问题:超出范围:byte的取值范围:-128~127想让 赋值正确,就必须强制类型转换,结果-126二.变量 1.逻辑运算符: 通过逻辑符号来连接boolean的表达式或者值; 2.逻辑运算符中基本的运算符: 逻辑单与:&(并列,并且的意思) 特点:有false,则false 逻辑单或:| 特点:有true,则true 逻辑异或:^ 特点:相同则为false,不同则为true(简单记:(男女关系)男男 女女 男女 女男) 逻辑非:! 非false,则true,非true则false;偶数个非是该数据本身的boolean类型的值 3.扩展的逻辑运算符:(实际开发中) 逻辑双与:&& 逻辑双或:|| public class OperatorDemo {public static void main(String[] args) {//定义三个变量int a = 3 ;int b = 4 ;int c = 5 ;//逻辑单与:&System.out.println((a>b) & (a>c));System.out.println((a>b) & (a<c));System.out.println((a<b) & (a<c));System.out.println((ac));System.out.println("-------------------------------");//逻辑单或|System.out.println((a>b) | (a>c));System.out.println((a>b) | (a<c));System.out.println((a<b) | (a<c));System.out.println((ac));System.out.println("-------------------------------");//逻辑异或^System.out.println((a>b) ^ (a>c));System.out.println((a>b) ^ (a<c));System.out.println((a<b) ^ (a<c));System.out.println((ac));System.out.println("-------------------------------");System.out.println(!(a>b));System.out.println(!!(a>b));}} 4.逻辑双与&&和逻辑单与& 的区别 (逻辑双或||和逻辑单或|)? 共同点:都是并且的意思,双与&&和单&的特点:有false,则false 最大的区别:逻辑双与&&连接的左边的表达式如果是一个flase,则右边的表达式不执行,具有短路效果 逻辑双或||: 如果左边的表达式是true,则右边不执行!,具有短路效果!public class OperatorDemo2 {public static void main(String[] args) {int a = 3 ;int b = 4 ;int c = 5 ;//逻辑双与:&&:有flase则falseSystem.out.println((a>b) && (a>c));System.out.println((a>b) && (a<c));System.out.println((a<b) && (a<c));System.out.println((ac));System.out.println("------------------------");int x = 3 ;int y = 4 ; // boolean flag = (((++x)==4) && ((--y)==5));boolean flag = (((++x)==3) && ((--y)==5));//左边表达式是false,则右边不执行!System.out.println("x:"+x);//4,4System.out.println("y:"+y);//3,4System.out.println("flag:"+flag);//false,false}}三.三元(目)运算符 1.三元运算符==>三目运算符 单目运算符:~3 双目运算符:3+4 三元运算符 格式: (表达式)? true的结果 : false的结果; 执行流程: 如果表达式成立,执行true的结果 如果表达式不成立,执行false的结果; public class OperatorDemo {public static void main(String[] args) {//求两个数据是否相等int a = 100;int b = 200 ;//用三元运算符实现// boolean flag = (a==b) ? true : false;//==表示两个数据进行比较// System.out.println("flag:"+flag);//优化改进boolean flag = a==b ;System.out.println(flag);//求两个数据中的最大值//先定义变量maxint max = (a>b) ? a : b ;System.out.println("两个数据中的最大值是:"+max);System.out.println("-----------------------");//求三个数据中的最大值int m = 10 ;int n = 50 ;int z = 20 ;//可以使用中间第三方变量进行实现,实际开发中就使用第三方进行实现// int temp = (m>n) ? m : n ;// //定义max2// int max2 = (temp > z) ? temp : z ;//一步走:int max2 = (m>n) ? ((m>z)? m: z) : ((n>z)? n: z) ;//不建议使用System.out.println("三个数据中的最大值是:"+max2);}}四.算数运算符 1. java中的运算符: 1)算术运算符 2)赋值运算符 3)比较(关系)运算符 4)逻辑运算符 5)位运算符 6)三元(三目)运算符 1)算术运算符: 基本的算术运算符:+,-,*,/,%(取余数) /:默认取整public class OperatorDemo {public static void main(String[] args) {//定义两个变量int x = 3 ;int y = 4 ;System.out.println(x+y);System.out.println(x-y);System.out.println(x*y);System.out.println(x/y);//想让当前结果计算具体的小数,分子都可以乘以浮点类型的数据System.out.println(x*1.0/y);System.out.println(x%y);}} 2. 扩展的算术运算符: ++或者--:循环语句中使用 应用场景: 1)单独使用:不管是++或者--在数据前还是数据后都是自增1或者自减1 2)参与运算使用: a:++,--在数据的前面,先自增1或者自减1,然后在运算(赋值) b:++,--在数据的后面.先运算(先赋值),然后自增1或者自减1 public class OperatorDemo2 {public static void main(String[] args) {//定义两个变量int x = 3 ;int y = 4 ;//进行++,--之前System.out.println("x:"+x);System.out.println("y:"+y);System.out.println("---------------");//单独使用//++,--在数据前面// ++x ;// --y ;//++,--在数据后面// x++;// y--;//参与运算// int c = ++x ;// int d = --y ;int c = x ++;int d = y -- ;System.out.println("x:"+x);//4,4System.out.println("y:"+y);//3,3System.out.println("c:"+c);//4,3System.out.println("d:"+d);//3,4}} 3. 关于+的应用: 1)作为一个运算符 2)表示一个数据是正数 3)字符串拼接符 4. 导包 为了使我们的数据更符合开发的数据,并且灵活性引入键盘录入 键盘录入数据的开发步骤: 只要不是java.lang包下的类都需要导包 A:创建键盘录入对象:Scanner类: java.util包下的类 固定格式: sc:对象名 Scanner sc = new Scanner(System.in); //实质还是通过IO流实现的(java高级特性) B:导包:位置:class和package中间 import java.util.Scanner; C:录入数据:使用对象名调用方法 int a = sc.nextInt(); D:输出public class ScannerDemo {public static void main(String[] args) {//创建键盘录入对象Scanner sc = new Scanner(System.in) ;//录入数据//提示System.out.println("请您输入一个数据:");int a = sc.nextInt();//输出System.out.println("您输入的数据是:"+a);}} 5. 8421码 二进制 1 1 1 1 1 1 1 1 十进制 128 64 32 16 8 4 2 1 6. 二进制_八进制_十六进制 二进制组成规则:由0和1组成,并且以0b组成; 八进制组成规则:由0到7组成,以0开头; 十六进制组成规则:由0......9,a,b,c,d,e,f组成,并且以0x组成. 7. 位权展开法:系数*基数的权次幂 系数:当前数据中每一个位对应的数据该本身 基数:求x进制到十进制的转换,基数就是x 权:给基数从右边开始并且从0进行编号 8.原码,反码,补码 计算一个数据的原码,反码和补码,必须先算出该数据对应的二进制数据 0 0000111 原码 0 0000111 反码 0 0000111 补码 用有符号位的数据表示-7 1 0000111 原码 1 1111000 反码 1 1111001 补码
原创粉丝点击