JAVAEE学习day02
1.数据类型的转换
1>自动转换(隐式)
1 // 将取值范围小的数据类型自动提升为取值范围大的类型 2 3 // 定义byte类型数据 4 byte b = 10; 5 6 // 定义short类型数据 7 short s = 20; 8 9 // short a = b + s; // 两个变量在相加的时候会自动转换成两个int类型相加,将int赋值给byte报错 10 11 //修改方法将会在强制转换给出12 // 自动转换顺序 13 byte -> short -> int -> long -> float -> double
2>强制转换(显式)
// 将取值范围大的数据类型强制转换成取值范围小的类型// 定义byte类型数据 byte b = 10;// 定义short类型数据 short s = 20;// short a = b + s; // 两个变量在相加的时候会自动转换成两个int类型相加,将int赋值给byte报错//修改方法1
short a = (short) (b + s); //修改方法2int a = b + s;
/*
转换格式:
目标类型 变量名 = (目标数据类型) 数据值;
注意:
1)浮点数转换成整数,直接取消小数部分,可能造成精度损失
2)取值范围大的数据类型强制转换成取值范围小的数据类型,
将砍掉前边多余的字节,可能损失精度.
*/
2.ASCII码表
0 48
9 57
A 65
Z 90
a 97
z 122
3.算数运算符
+ 加法- 减法* 乘法/ 除法% 取模/取余++ 自增-- 自减以上运算符计算整数的时候不会产生小数自增和自减两种表现形式前++,前--++后,--后在独立运算的时候两者没有区别在混合运算时候的区别前++,先拿自身做运算,然后再自加++后,先自加,然后再做运算加号+ 在遇到字符串的时候表示链接和拼接的含义
4.赋值运算符
/* = 等号+= 加等于-= 减等于*= 乘等于/= 除等于%= 取模等于*/ // += 扩展:byte a = 10;byte c = a + 1; // 报错,1为int类型,自动提升为intbyte c += 1; // java自动强转,等同于 byte c =(byte)(c + 1);
5.比较运算符
== 比较两边是否相等,相等结果为true< 比较左边是否小于右边,如果是,为true> 比较左边是否大于右边,如果是,为true<= 比较左边是否小于等于右边,如果是,为true>= 比较左边是否大于等于右边,如果是,为true!= 比较两边是不是不相等,如果不等则为true
6.逻辑运算符
&& 短路与两边为true为true短路的特性:左边是false,右边不再运算|| 短路或一边为true则为true短路特性:左边是true,右边不再运算! 取反!true == false!false == true
7.三元运算符
// 格式:// 数据类型 变量名 = 布尔类型表达式 ? 结果1 : 结果2;// 布尔表达式结果为true,结果1赋值给变量// 布尔表达式结果为false,结果2赋值给变量
8.定义方法入门
将一个功能提取出来,把代码单独定义在一个大括号内,形成一个单独的功能方法的定义格式:修饰符 返回值类型 方法名(参数){return ;}public static void demo(){System.out.println("我是一个方法");}
9.方法的调用
1 // 方法在定义完成之后,自己不会运行,只有被调用再能执行,我们在主方法中调用方法 2 // 举个栗子: 3 4 public class Method{ 5 // 主方法 6 public static main(String[] args){ 7 // 调用方法 8 method(); 9 } 10 11 // 定义的方法 12 public static void method(){ 13 System.out.println("我是一个被调用的方法"); 14 } 15 } 16 17 // 注意: 18 // 方法必须定义在类中main方法外,不能定义在另一个方法中
练习题
1 // 问题一: 2 int a = 100; 3 byte b = 50; 4 // int + int 所以计算结果是int 5 short c = a + b; 6 //改一 7 short c = (short)(a + b); 8 //改二 9 int c = a + b; 10 11 //问题二: 12 int x = 100; 13 //200是int类型,赋值给long类型.自动类型提升. 14 long y = 200; 15 // int long 计算结果 long 16 int z = x + y; 17 //改一 18 int z = (int)(x + y); 19 //改二 20 long z = x + y; 21 22 //问题三: 23 long t = 100;//类型提升 24 int s = 50; 25 // long + int 计算结果是long .赋值给float类型的变量f,这里是自动类型转换 26 float f = t + s; 27 28 //问题四: 29 byte a = 10; 30 byte b = 20; 31 //计算结果应该是int类型的 32 byte c = a + b; 33 34 //问题五: 35 char c = 'a';//97 36 System.out.println(c + 10); // 107 37 38 int i = 97; 39 //强转的时候.会拿着97去编码表中查他对应的字符.然后把这个字符赋值给变量c 40 char c = (char)i; 41 System.out.println(c);//a 42 43 char c = 'a'; 44 // int + int 计算结果是int 45 char cc = c + 1; 46 //改一 47 int cc = c + 1; 48 System.out.println(cc); //98 49 //改二 50 //先进行加法运算. 97 + 1 = 98 51 //然后强制类型转换. 就是拿着98去编码表中去查他对应的字符, 'b' 52 char cc = (char)(c + 1); 53 System.out.println(cc);//b 54 55 56 //16-编译器的两点优化 57 58 59 60 61 byte a = 10; 62 byte b = 20; 63 // int + int所以运算结果是int 64 byte c = a + b;//编译出错 65 byte cc = 10 + 20;//等号右边全部都是常量,编译器给我们计算出结果,然后去判断30是在byte取值范围之内,所以直接赋值. 66 67 68 char c = 'a'; 69 System.out.println(c);//a 70 char c = 97;//赋值的过程,就是拿着97这个编号去编码表中查他对应的字符,然后给变量c赋值 71 System.out.println(c);//a 72 73 //问题: 74 // int + int 计算结果是int类型. 75 //这个int类型的计算结果再char的范围之内,可以直接赋值给变量c 76 char c = 'a' + 1; 77 System.out.println(c);//b 78 79 byte b = 3 + 4; //相当于 byte b = 7; 80 System.out.println(b); 81 82 byte b = 100 + 100; //1. 200,2 200超出了byte范围,所以编译出错. 83 System.out.println(b); 84 85 86 87 88 //变量跟变量之间: 89 int a = 10; 90 int b = 20; 91 int c = a + b; 92 93 //变量跟常量之间 94 int a = 10; 95 int b = a + 10; 96 97 //常量跟常量之间: 98 99 byte b1 = 3; 100 byte b2 = 4; 101 byte b = b1 + b2; //报错,byte相加会升级成int,然后相加 102 //修改1 103 byte b = (byte) (b1 + b2) 104 //修改2 105 int b = b1 + b2 106 107 byte bb = 3 + 4 ; 108 System.out.println(bb); 109 110 byte bbb = 100 + 100; //报错,超出范围 111 112 System.out.println(bbb); 113 114 115 116 int a = 1; 117 int b = a-- + a--; 118 System.out.println(a); // -1 119 System.out.println(b); // 1 120 121 122 int a = 1; 123 int b = ++a + a--; 124 System.out.println(a); // 1 125 System.out.println(b); // 4 126 127 128 int a = 1; 129 int b = --a + ++a; 130 System.out.println(a); // 1 131 System.out.println(b); // 1 132 133 134 135 int a = 1; 136 int b = 2; 137 int c = (a++ > b++) && (a++ >= b++) ? a : b; 138 System.out.println(c); //3 139 140 141 int c = (a++ > b++) & (a++ >= b++) ? a : b; 142 System.out.println(c); //4 143 144 145 int c = (a++ < b++) & (a++ >= b++) ? a : b; 146 System.out.println(c); //4 147 148 149 int a = 1; 150 int b = 2; 151 int c = (++a >= b++) && (a++ >= b++) ? a : b; 152 System.out.println(c); //4
转载于:https://www.cnblogs.com/BRIGHTM00N/p/10452979.html
JAVAEE学习day02相关推荐
- 小汤学编程之JavaEE学习day02——Servlet使用步骤、生命周期、接收与返回数据、GET与POST、转发与重定向
一.Servlet使用步骤 二.Servlet生命周期 三.Servlet接收与返回数据 四.GET请求与POST请求的区别 五.转发与重定向 一.Servlet使用步骤 servlet是运行在服务器 ...
- Linux+javaEE学习笔记之Linux网络环境配置
Linux+javaEE学习笔记之Linux网络环境配置 网络知识简单介绍: Ip地址是:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物 ...
- JavaEE学习笔记整理
目录 1:明白什么是JavaEE 2:JavaEE的主要技术 (1)JDBC (2)JavaBeans (3)JSP (4)Servlet 3:JavaEE框架 (1)MVC框架 (2)SSM Jav ...
- JavaEE学习日志(七十三): 黑马商城项目(六)
JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇) JavaEE学习日志(七十三) 黑马商城项目(六) 今天任务 在线支付 准备工作 前端 OrdersDao Ord ...
- JavaEE学习之jsp编写登陆注册页面
JavaEE学习之jsp编写登陆注册页面 刚开始学习javaee,好多东西需要一点点积累.最近用jsp和简单的JavaScript写的登录注册界面,简单做一下记录. 准备–页面布局 登录和注册界面的H ...
- javaEE学习_1
javaEE学习第一天 1. 计算机的用途: 1) 科学计算:货币的换算,程序员(进制的转换)... 2) 计算机辅助设计:CAD制图 3) 自动控制 4) 媒体应用 2. 计算机的组成: 计算机的硬 ...
- JavaEE学习日志(六十二): jQuery遍历,jQuery事件,省市联动,左右互选
JavaEE学习日志持续更新----> 必看!JavaEE学习路线(文章总汇) JavaEE学习日志(六十二) jQuery jQuery遍历 传统遍历 jQuery对象遍历 jQuery全局函 ...
- JavaEE学习路线
JavaEE学习路线 Java编程学习 编程基础:计算机和Java基本知识,再学习运算符.流程控制.字符串.数组.方法等 面向对象:面向对象编程,通过小案例学习类的概念.深入学习继承.多态.抽象类与接 ...
- JavaEE学习路线(经典必看)
针对很多初识Java者,对如何学习Java.如何学好Java很迷茫,最近刚在如鹏网 上把JavaEE的东西学完,把我的学习的经验分享给大家,一条适合大多数人的学习路线,希望对大家在学习Java的过程中 ...
最新文章
- bfgs算法matlab程序,BFGS优化算法及应用实例.docx
- dataset中获取图像的名字_GDAL与OpenCV的图像像素读取格式互相转换
- Vivo手机调试 logcat 信息一堆星号问题
- 自定义C++一元多项式类
- python网络聊天器多线程版
- UE4 在游戏中使用Slate
- 2d头发_3D打印毛囊突破性进展!“头发工厂”将成秃顶的救星
- virtualbox centos并配置网络使宿主机和虚拟机能够互相访问 host-only
- linux 网络编程
- 神经网络在科研中的应用,基于神经网络的论文
- 计算机桌面计划,如何用便签在电脑桌面安排日程?
- html页面背景图片不够大怎么办,Word背景图片不够大怎么办
- 计算机管理无法定位程序输入点,win10系统打开程序提示无法定位程序输入点于动态链接库怎么办...
- 浅谈不动产登记中的区块链应用 |《超话区块链》83期回顾
- Android根据音量大小绘制心电图(附源码)
- android o 开发者大会,谷歌开发者大会刚结束Android O又要来了?
- android点亮屏幕软件,插亮屏幕Lite
- weiphp短信接口教程
- Android 音视频变速原理
- css设置文本斜体代码实例
热门文章
- 中国航信IBE机票代理人Shoppping查询指令
- 魏则西事件与百度医疗竞价排名引发的伦理与道德问题
- Android中根据dialog的展示与否控制软键盘的显示与隐藏
- vrrp协议和master路由器
- 图像旋转源程序c语言,图像旋转 - 红尘潇洒,独自前行,但尽人事,莫问前程 - OSCHINA - 中文开源技术交流社区...
- 嵌入式软件工程师面试需要的TCPI/IP协议栈知识点
- 25则“验尸报告”— 创业失败者启示录
- [弱校联萌2016]2016弱校联盟十一专场10.3
- 如何给金蝶kis记账王新增凭证字
- [GWCTF 2019]枯燥的抽奖 1