JAVAEE学习day02
1.数据类型的转换
1>自动转换(隐式)
// 将取值范围小的数据类型自动提升为取值范围大的类型 // 定义byte类型数据
byte b = 10; // 定义short类型数据
short s = 20; // short a = b + s; // 两个变量在相加的时候会自动转换成两个int类型相加,将int赋值给byte报错 //修改方法将会在强制转换给出
// 自动转换顺序
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); //修改方法2
int 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类型,自动提升为int
byte 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.方法的调用
// 方法在定义完成之后,自己不会运行,只有被调用再能执行,我们在主方法中调用方法
// 举个栗子: public class Method{
// 主方法
public static main(String[] args){
// 调用方法
method();
} // 定义的方法
public static void method(){
System.out.println("我是一个被调用的方法");
}
} // 注意:
// 方法必须定义在类中main方法外,不能定义在另一个方法中
练习题
// 问题一:
int a = 100;
byte b = 50;
// int + int 所以计算结果是int
short c = a + b;
//改一
short c = (short)(a + b);
//改二
int c = a + b; //问题二:
int x = 100;
//200是int类型,赋值给long类型.自动类型提升.
long y = 200;
// int long 计算结果 long
int z = x + y;
//改一
int z = (int)(x + y);
//改二
long z = x + y; //问题三:
long t = 100;//类型提升
int s = 50;
// long + int 计算结果是long .赋值给float类型的变量f,这里是自动类型转换
float f = t + s; //问题四:
byte a = 10;
byte b = 20;
//计算结果应该是int类型的
byte c = a + b; //问题五:
char c = 'a';//
System.out.println(c + 10); // int i = 97;
//强转的时候.会拿着97去编码表中查他对应的字符.然后把这个字符赋值给变量c
char c = (char)i;
System.out.println(c);//a char c = 'a';
// int + int 计算结果是int
char cc = c + 1;
//改一
int cc = c + 1;
System.out.println(cc); //98
//改二
//先进行加法运算. 97 + 1 = 98
//然后强制类型转换. 就是拿着98去编码表中去查他对应的字符, 'b'
char cc = (char)(c + 1);
System.out.println(cc);//b //16-编译器的两点优化 byte a = 10;
byte b = 20;
// int + int所以运算结果是int
byte c = a + b;//编译出错
byte cc = 10 + 20;//等号右边全部都是常量,编译器给我们计算出结果,然后去判断30是在byte取值范围之内,所以直接赋值. char c = 'a';
System.out.println(c);//a
char c = 97;//赋值的过程,就是拿着97这个编号去编码表中查他对应的字符,然后给变量c赋值
System.out.println(c);//a //问题:
// int + int 计算结果是int类型.
//这个int类型的计算结果再char的范围之内,可以直接赋值给变量c
char c = 'a' + 1;
System.out.println(c);//b byte b = 3 + 4; //相当于 byte b = 7;
System.out.println(b); byte b = 100 + 100; //1. 200,2 200超出了byte范围,所以编译出错.
System.out.println(b); //变量跟变量之间:
int a = 10;
int b = 20;
int c = a + b; //变量跟常量之间
int a = 10;
int b = a + 10; //常量跟常量之间: byte b1 = 3;
byte b2 = 4;
byte b = b1 + b2; //报错,byte相加会升级成int,然后相加
//修改1
byte b = (byte) (b1 + b2)
//修改2
int b = b1 + b2 byte bb = 3 + 4 ;
System.out.println(bb); byte bbb = 100 + 100; //报错,超出范围 System.out.println(bbb); int a = 1;
int b = a-- + a--;
System.out.println(a); // -1
System.out.println(b); // int a = 1;
int b = ++a + a--;
System.out.println(a); //
System.out.println(b); // int a = 1;
int b = --a + ++a;
System.out.println(a); //
System.out.println(b); // int a = 1;
int b = 2;
int c = (a++ > b++) && (a++ >= b++) ? a : b;
System.out.println(c); // int c = (a++ > b++) & (a++ >= b++) ? a : b;
System.out.println(c); // int c = (a++ < b++) & (a++ >= b++) ? a : b;
System.out.println(c); // int a = 1;
int b = 2;
int c = (++a >= b++) && (a++ >= b++) ? a : b;
System.out.println(c); //
JAVAEE学习day02的更多相关文章
- 我的JavaEE学习路线图
从学习Java开发到现在虽然也已经快三年了,但是要说到分享一下经验实在是不敢当.权当是对自己的一个总结吧,希望大家不吝指教,互相交流. 照旧,还是现来整理一下我学习Java的一个路线图吧,然后按照这个 ...
- JAVAEE学习路线分享
今天把我的教学经验分享给大家.适合大多数人的学习路线.注:目前作者已经转行做java培训. 首先是培养兴趣.先开始学习HTML知识.也就是做网页,从这里开始比较简单,就是几个标签单词需要记住. 接着开 ...
- JavaEE学习路线
针对很多初识Java者,对如何学习Java.如何学好Java很迷茫,最近刚把JavaEE的东西学完,把我的学习的经验分享给大家,一条适合大多数人的学习路线. 第一部分:Java语言入门阶段 第二部分: ...
- JavaEE学习总结(十四)— 人工智能微博
一.数据库与表 人工智能微博(blog) note(id,bt,nr);微博信息(编号,标题,内容) 列表添加 数据库脚本 /* Navicat MySQL Data Transfer Source ...
- python开发学习-day02(元组、字符串、列表、字典深入)
s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- JavaEE学习记录(一)--软件系统体系结构
1 常见软件系统体系结构B/S.C/S 1.1 C/S l C/S结构即客户端/服务器(Client/Server),例如QQ: l 需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户 ...
- Java学习day02
day02-课堂笔记 1.打开DOS命令窗口,执行java HelloWorld,执行原理? * java.exe命令会启动JVM * JVM启动之后会启动类加载器ClassLoader * Clas ...
- Django学习day02随堂笔记
每日测验 """ 今日考题 1.谈谈你对web框架的认识,简述web框架请求流程 2.python三大主流web框架的区别 3.安装django需要注意的事项有哪些(最少 ...
- 未完待续【java】JavaEE学习路线总览
这个博客会详细介绍各种技术的知识点,从零基础到入门,充当引路的作用. 同时也会发布一些Swift语言.c#语言.Xcode开发的学习笔记.一些阅读的笔记(部分读书笔记无法发布). 目前1-43的Jav ...
随机推荐
- [LC] 215. Kth Largest Element in an Array
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...
- python--防止SQL注入
from pymysql import * def main(): # 创建Connextion连接 conn = connect(host='localhost', port=3306, user= ...
- 操作的系统的PV操作
转自:https://blog.csdn.net/sunlovefly2012/article/details/9396201 在操作系统中,进程之间经常会存在互斥(都需要共享独占性资源时) 和同步( ...
- $random 函数用法
$random函数调用时,返回一个32位的随机数,它是一个带符号的整形数.如下例: reg[23:0] rand; rand = $random % 60; //产生一个在 -59~59 范围的随机数 ...
- C语言学习笔记之获取文件长度
本文为原创文章,转载请标明出处 #include <stdio.h> #include <stdlib.h> int main() { FILE *inputFile; inp ...
- string删除与查找erase,find
s.erase( 指针位置 , 删除长度 ) 返回值修改后的string对象引用 find(string, int):第一个参数用来指示要查找的字符,第二个参数用来表示从字符串的何处开始查找子串(默认 ...
- 吴裕雄--天生自然 人工智能机器学习实战代码:LASSO回归
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model from s ...
- linux find命令格式及find命令详解
本文详细介绍了linux find命令格式及find命令案例,希望对您的学习有所帮助.1.find命令的一般形式为:find pathname -options [-print -exec -ok . ...
- flask_admin+flask_login 整合,jieba分词+echarts数据分析可视化
项目地址: https://github.com/WES6/list
- 新财报再次巨亏 HTC还能活到2017吗?
HTC还能活到2017吗?" title="新财报再次巨亏 HTC还能活到2017吗?"> 当下智能手机行业虽然竞争惨烈,但也称得上是精彩纷呈:性能.外形不断进化, ...