疯狂java讲义之数据类型与运算符
Java是一门强类型语言
所有变量必须先声明、后使用
指定类型的变量只能接受类型匹配的值
注释
@author
作者
@version
版本
@param
方法参数
@return
返回值
标识符与关键字
分隔符
;
{}
[]
()
.
数据类型
基本类型
boolean
数值类型
整数类型
byte
1个字节
8位2进制
short
2个字节
16位2进制
int
4个字节
32位2进制
long
8个字节
64位2进制
浮点类型
float
4个字节
第一位是符号位
接下来8位表示指数
接下来23位表示尾数
double
8个字节
第一位是符号位
接下来11位表示指数
接下来52位表示尾数
两种表现形式
十进制
5.12
512.0
.512
科学计数
5.12e2
表示5.12*10²
字符类型
char
2个字节
引用类型
类
接口
数组
null
整数的4种表示方式
十进制
二进制
0b
0B
八进制
0
十六进制
0x
0X
ASCII字符集
只要一个字节,8位,支持256个字符编号
Unicode字符集
两个字节,16位,支持65536个字符编号
字符值的三种表示形式
直接通过单个字符表示
A、9、0
通过转义字符表示特殊字符
\t
通过Unicode值来表示
\uXXXX
bool值得作用
if
while
for
?:
类型转换
自动类型转换
byte→short→int→long→float→double
强制类型转换
运算符
算术运算符
+
加
-
减
*
乘
/
除
%
求余
++
自加
++a先加1再运算
a++先运算,再加1
赋值运算符
=
+=
-=
*=
/=
%=
&=
|=
>=
比较运算符
>
>=
>
右移
字符串例子
char aChar = 'a';
char enterChar = '\r';
char ch = '\u9999';
System.out.println(aChar); // a
System.out.println(enterChar);
System.out.println(ch); // 香
char zhong = '疯';
int zhongValue = zhong;
System.out.println(zhong); // 疯
System.out.println(zhongValue); //30127
char c = 97;
System.out.println(c); // a
// 字符串
String s = "我爱你\u9999";
System.out.println(s); // 我爱你香
运算例子
double a = 5.2;
double b = 3.1;
double div = a/b;
System.out.println(div); //1.6774193548387097
System.out.println("5除以0.0的结果:" + 5/0.0); // Infinity 正无穷
System.out.println("-5除以0.0的结果:" + -5/0.0); // -Infinity 负无穷
//System.out.println("5除以0的结果:" + 5/0); // 报错
//System.out.println("-5除以0的结果:" + -5/0);
int ia = 5;
int ib = ia++ + 6;
System.out.println(ib); // 11
int ia2 = 5;
int ib2 = ++ia2 + 6;
System.out.println(ib2); // 12
System.out.println("5是否大于4.0:" + (5 > 4.0));
System.out.println("5和5.0是否相等:" + (5 == 5.0));
System.out.println("97和'a'是否相等:" + (97 == 'a'));
System.out.println("true和false是否相等:" + (true == false));
// ||与|的区别
int a1 = 5;
int b1 = 10;
if (a1 > 4 | b1++ >10) {
System.out.println("a1的值是:" + a1 + ",b1的值是:" + b1); // b1的值为11
}
int a2 = 5;
int b2 = 10;
if (a2 > 4 || b2++ >10) {
System.out.println("a2的值是:" + a2 + ",b2的值是:" + b2); // b2的值为10
}
自动转换例子
package ch3;
/**
* Created by Jiqing on 2016/11/6.
*/
public class AutoPromote {
public static void main(String[] args) {
byte b = 40;
char c = 'a';
int i =23;
double d = .314;
double result = b+c+i*d;
System.out.println(result); // 144.22 自动转为最高级的double型
int val = 3;
int intResult = 23/val;
System.out.println(intResult); // 7
System.out.println("hello!" + 'a' + 7); // hello!a7
System.out.println('a' + 7 + "hello!"); // 104hello!
System.out.println('a' + "hello!"); // ahello!
}
}
强制转换例子
package ch3;
/**
* Created by Jiqing on 2016/11/6.
*/
public class NarrowConversion {
public static void main(String[] args) {
int iValue = 233;
byte bValue = (byte)iValue; //强制转换
System.out.println(bValue); // 变成-23
double dValue = 3.98;
int tol = (int)dValue;
System.out.println(tol); // 变成了3
float a = (float) 5.6; // 默认是double,需要强制转换
String score = "100";
int iScore = Integer.parseInt(score); // (int) 不能将字符串变为int
System.out.println(RandomStr(6));
}
public static String RandomStr(int length) { // 利用强制转化生产随机字符串
String result = "";
for (int i = 0;i<length;i++) {
int intVal = (int)(Math.random()*26 + 97);
result = result + (char)intVal;
}
return result;
}
}
疯狂java讲义之数据类型与运算符的更多相关文章
- 【Java】-NO.16.EBook.4.Java.1.002-【疯狂Java讲义第3版 李刚】- 数据类型
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.002-[疯狂Java讲义第3版 李刚]- 数据类型 Style:EBook Series:Java ...
- 【Java】-NO.16.EBook.4.Java.1.003-【疯狂Java讲义第3版 李刚】- oop
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.003-[疯狂Java讲义第3版 李刚]- oop Style:EBook Series:Java S ...
- 《疯狂java讲义》笔记 1-5章
1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...
- 《疯狂java讲义》读后感
<疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向 ...
- 《疯狂Java讲义第4版》PDF+代码+课件 电子书pdf 分享
<疯狂Java讲义(第4版)>是<疯狂Java讲义>的第4版,第4版保持了前3版系统.全面.讲解浅显.细致的特性,全面新增介绍了Java 9的新特性. <疯狂Java讲义 ...
- 读《疯狂Java讲义》笔记总结一
最近在读<疯狂Java讲义>,现把其中遇到的一些自己以前没掌握的点儿记录下来. 1.字符串相关 字符串不是基本类型,字符串是一个类,也就是一个引用类型. 字符串转int类型String a ...
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...
- 《疯狂Java讲义》(一) ---- 关于学习Java的反思
"听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...
- 疯狂java讲义——继承
本文章只是记录我在学习疯狂java讲义里面,对之前java知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表 ...
随机推荐
- Ubuntu安装keepalived
Ubuntu安装keepalived 一.Keepalived是什么鬼东西: keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. 二.Ke ...
- POJ3624 Charm Bracelet 【01背包】
Charm Bracelet Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22621 Accepted: 10157 ...
- UltraEdit正則表達式介绍及实例
前几天,有个将Excel中的数据导入到数据库中的需求.原本想到用程序读取Excel中的数据并存储到数据库中,但经一哥们的提醒,说用 EditPlus或UltraEdit这种工具直接将数据拼凑成SQL插 ...
- JSON数据的生成与解析
JSON数据的生成与解析.首先先到网上下载一个json jar包,我用的是org.json 演示样例代码: package json; import org.json.JSONArray; impor ...
- 机器学习之&&Andrew Ng课程复习--- 聚类——Clustering
第十三章.聚类--Clustering ******************************************************************************** ...
- 2014年辛星解读css第三节
第二节我们讲述的差点儿全是CSS的选择器,那么以下这一节我们来讲一下CSS的颜色和文本的一些东西,尽管我对调色不大敏感.可是对于颜色还是比較感兴趣的. *********CSS中的颜色******** ...
- iOS开发实践之xib载入注意问题
xib都会addSubview加入到控制器view中时程序崩溃.错误提示: 'NSInvalidArgumentException', reason: '-[ UITapGestureRecogniz ...
- xBIM 基础05 3D墙案例
系列目录 [已更新最新开发文章,点击查看详细] 使用编码的形式去生成一堵墙的模型需要做很多的工作. using System; using System.Collections.Generic ...
- 【原创】Google的文本内容对比代码
/* * Diff Match and Patch * * Copyright 2006 Google Inc. * http://code.google.com/p/google-diff-matc ...
- css让背景颜色与背景图片同时显示
background:url(../images/bg02.png) #25282e left top no-repeat;