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的更多相关文章

  1. 我的JavaEE学习路线图

    从学习Java开发到现在虽然也已经快三年了,但是要说到分享一下经验实在是不敢当.权当是对自己的一个总结吧,希望大家不吝指教,互相交流. 照旧,还是现来整理一下我学习Java的一个路线图吧,然后按照这个 ...

  2. JAVAEE学习路线分享

    今天把我的教学经验分享给大家.适合大多数人的学习路线.注:目前作者已经转行做java培训. 首先是培养兴趣.先开始学习HTML知识.也就是做网页,从这里开始比较简单,就是几个标签单词需要记住. 接着开 ...

  3. JavaEE学习路线

    针对很多初识Java者,对如何学习Java.如何学好Java很迷茫,最近刚把JavaEE的东西学完,把我的学习的经验分享给大家,一条适合大多数人的学习路线. 第一部分:Java语言入门阶段 第二部分: ...

  4. JavaEE学习总结(十四)— 人工智能微博

    一.数据库与表 人工智能微博(blog) note(id,bt,nr);微博信息(编号,标题,内容) 列表添加 数据库脚本 /* Navicat MySQL Data Transfer Source ...

  5. python开发学习-day02(元组、字符串、列表、字典深入)

    s12-20160109-day02 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...

  6. JavaEE学习记录(一)--软件系统体系结构

    1 常见软件系统体系结构B/S.C/S 1.1 C/S l C/S结构即客户端/服务器(Client/Server),例如QQ: l 需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户 ...

  7. Java学习day02

    day02-课堂笔记 1.打开DOS命令窗口,执行java HelloWorld,执行原理? * java.exe命令会启动JVM * JVM启动之后会启动类加载器ClassLoader * Clas ...

  8. Django学习day02随堂笔记

    每日测验 """ 今日考题 1.谈谈你对web框架的认识,简述web框架请求流程 2.python三大主流web框架的区别 3.安装django需要注意的事项有哪些(最少 ...

  9. 未完待续【java】JavaEE学习路线总览

    这个博客会详细介绍各种技术的知识点,从零基础到入门,充当引路的作用. 同时也会发布一些Swift语言.c#语言.Xcode开发的学习笔记.一些阅读的笔记(部分读书笔记无法发布). 目前1-43的Jav ...

随机推荐

  1. 4k高分屏下,chm帮助文档,api文档打开后字体过小的解决

    如图所示: 4k分辨率下,chm文件的正文部分的字体过小,这是这些网页可能使用了CSS维持字体dpi, 在普通分辨率下,可以显示正常,但在高分屏下就会显示得过小,这时我们就需要调整显示网页 的显示效果 ...

  2. sm3算法的简单介绍

    转自:https://blog.csdn.net/hugewaves/article/details/53765063 SM3算法也是一种哈希算法,中国国家密码管理局在2010年发布,其名称是SM3密 ...

  3. MOOC(1)-使用pycharm新建Django项目、开发post接口

    https://www.cnblogs.com/liqu/p/9308966.html 1.安装Django的两种方式: > 1) pip install django 2)下载离线安装包,进入 ...

  4. mysql 系列错误解决

    参考文章来源 https://segmentfault.com/a/1190000015678751 https://blog.csdn.net/Tong_zhi/article/details/84 ...

  5. 在python中连接mysql数据库,并进行增删改查

    数据库在开发过程中是最常见的,基本上在服务端的编程过程中都会使用到,mysql是较常见的一种数据库,这里介绍python如果连接到数据库中,并对数据库进行增删改查. 安装mysql的python扩展 ...

  6. flutter 白板工具Twitter IconFacebook Icon

    flutter 白板工具 Categories: flutter 平常桌面上都放着一些草稿纸,因为经常要整理思路.画画草图啥的.这不是电子时代嘛,就觉得在手机.pad上也可以这样写写画画,我看了有很多 ...

  7. 涉嫌垄断的App Store,到底做了什么让开发者暴怒

    ​ Store,到底做了什么让开发者暴怒" title="涉嫌垄断的App Store,到底做了什么让开发者暴怒"> ​什么行业最赚钱?不是你想象中的餐饮.互联网. ...

  8. 空间数据导入Oracle数据库备忘

  9. 从赴美IPO绝迹 看那些烧成泡沫的互联网企业

    曾经,赴美上市是很多中国企业的终极梦想.然而在当下,随着中概股在美国股市股价的不断走低.中国赴美上市企业私有化速度的加快,大众才发现,原来美国股市并不是那么好混的.但不管怎样,赴美上市始终是一种荣耀. ...

  10. (转载)Eclipse中使用SVN

    为了方便个人使用,转载过来的,如需查阅,请前往原文地址:http://www.cnblogs.com/wvqusrtg/p/4993849.html 1.在Eclipse里下载Subclipse插件 ...