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. 【Linux_Shell 脚本编程学习笔记三、分支与循环结构】

    if 语句是实际生产工作中最重要且最常用的语句,所以,必须掌握牢固 if 条件语法 1. 单分支机构 if  [ 条件 ] then 指令 fi 或 if  [  条件 ]; then 指令 fi   ...

  2. cs231n spring 2017 lecture4 Introduction to Neural Networks

    1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...

  3. 深入JVM内核--JVM简介

    JVM概念 jvm是指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完成计算机系统. 目前主要有vmMare.visual Box和JVM三款虚拟机. JVM使用软件模拟java字节 ...

  4. AD复制问题汇总

    1:文件复制服务NtFrs 13568报错的解决方法 解决方法: 建议不要按照日志的提示进行操作,正确的操作应该是 出现这个问题的原因,是由于在硬件的损坏,导致服务器未正确处理NTFS USN 日志. ...

  5. Java判断字符串是否为空

    我们常常在实际开发调用一些类库,或者本身框架里面有类库去实现判断字符串空的操作,但是某些场景下上不是很方便去引入外部库的,所以需要我们自己去做这个工作,事实上判断空的操作不是很复杂,所以做个记录. 空 ...

  6. Java IO: PipedInputStream

    原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) PipedInputStream可以从管道中读取字节流数据,代码如下: 01 InputSt ...

  7. openpyxl操作excel表格

    1.openpyxl 只支持打开.xlsx格式,其他excel类库基本也是 2.不能这里的工作面板直接右键新建表格,必须到文件夹下面去新建,可以把在别的目录新建的表格直接复制到当前目录下 3.从表格中 ...

  8. POJ 2112 Optimal Milking 最短路 二分构图 网络流

    题意:有C头奶牛,K个挤奶站,每个挤奶器最多服务M头奶牛,奶牛和奶牛.奶牛和挤奶站.挤奶站和挤奶站之间都存在一定的距离.现在问满足所有的奶牛都能够被挤奶器服务到的情况下,行走距离的最远的奶牛的至少要走 ...

  9. Dangling meta character '' near index 0

    1.replaceAll()方法报错 对字符串使用replaceAll()方法替换 * ? + / | 等字符的时候会报以下异常 Dangling meta character '*' near in ...

  10. Spring中的事件处理

    文章目录 Spring中的事件处理 Spring 的核心是 ApplicationContext,它负责管理 beans 的完整生命周期.当加载 beans 时,ApplicationContext ...