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. [LC] 277. Find the Celebrity

    Suppose you are at a party with n people (labeled from 0 to n - 1) and among them, there may exist o ...

  2. 浅谈URL重定向

    转载:https://blog.csdn.net/kiyoometal/article/details/90698761 重定向原理 HTTP 协议的重定向响应的状态码为 3xx .浏览器在接收到重定 ...

  3. 整理struct sockaddr和struct sockaddr_in

    struct sockaddr定义在/usr/include/linux/socket.h struct sockaddr { unsigned short ss_family; - } struct ...

  4. HDU-6312-Game

    题意: 一个集合里有1到n,两个人轮流从中取数,取出一个数的同时这个数的因子也被取走.取走最后一个数者为胜.判断是否先手必胜. 思路: 一道挺有意思的博弈题.一开始在纸上列出了n为1到6的情况,发现都 ...

  5. IOC初始化销毁的2种实现方式

    IOC初始化销毁的2种实现方式 1.bean内调用init-method 和destroy-method 2.通过注解实现@PostConstruct 和@PreDestroy ----------- ...

  6. cisco WLC开启portal认证,但是访问https无法跳转问题的解决

     config network web-auth https-redirect enable版本8,及以上才支持  官方文档: http://www.cisco.com/c/zh_cn/support ...

  7. AVFoundation Programming Guide(官方文档翻译4)Editing - 编辑

    新博客:完整版 - AVFoundation Programming Guide 分章节版:- 第1章:About AVFoundation - AVFoundation概述- 第2章:Using A ...

  8. 上传第三方jar包到nexus

    1.创建一个新的repository存放第三方jar包(3rd_party) 2.执行以下命令进行上传:切记需要上传的本地jar包路径不能在本地仓库下,可以随便放一个位置.(以下标红的,请根据自己情况 ...

  9. springboot 不同类型多数据源配置及使用

    springboot多数据源配置: datasource.master.jdbc=jdbc:mysql://localhost:3306/test?useUnicode=true&charac ...

  10. Windows系统在Python2.7环境下安装numpy, matplotlib, scipy - Lichanghao Blog

    numpy, matplotlib, scipy三个包是科学计算和绘图的利器.安装它们既可以在网上下载exe安装包,也可以用python内置的包管理工具来下载安装,后者较为方便. 这几天做美赛要用到, ...