JavaSE教程-02Java基本语法-思维导图
思维导图看不清楚时:
1)可以将图片另存为图片,保存在本地来查看
2)右击在新标签中打开放大查看
1.注释
定义:用于解释说明程序作用的文字
注释类别
单行注释
格式: //注释文字
多行注释
格式: /* 注释文字 */
文档注释
格式:/* 注释文字 /
区别于多行注释:多一个*
2.关键字
定义:被Java语言赋予特定含义的单词,又称保留字
goto和const作为保留字存在,目前并不使用
关键字有哪些
3.标识符
定义:程序中需要我们自己来命名的,比如类名,方法名,变量名
标识符命名规则
由字母、数字、下划线、$组成,但不能以数字开头
大小写敏感
不得使用java中的关键字和保留字
建议采用驼峰式写法,比如定义一个系统用户类 SystemUser
4.常量与变量
##常量
程序中,固定不变的值
变量
变量用来存储程序执行中用到的数据
变量存储的数据是可以改变的
变量定义格式
数据类型 变量名 = 初始化值;
5.数据类型
Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中为每种数据类型分配了不同的内存空间
数据类型
各种类型数据占用空间与范围
注意:char是占2个字节
其他
- 1字节 = 8位,即2^8
- 数据分类的目的:合理利用内存
- 开发中:整数一般采用int和 long, 小数:double
规则
- 变量必须先声明,并且初始化后才能使用;
- 声明变量必须有数据类型
- 同一作用域内变量不能重复定义
- 变量名小写开头
- 变量的赋值不能越界
6,数据类型的转换问题
赋值时的转换
默认转换(把小的赋值给大的)
byte-short-int-long-float-double
强制转换(把大的赋值给小的)
目标类型 变量名=(目标类型)变量值;
运算时的转换,掌握+号运算符(默认转换)
**注意:**float类型数据赋值时,必须进行数据转换,因为小数默认为double类型
转换方式:
1.float a=(float)1.01; 在数值前加(float)
2.float a=1.01f; 在数值后面加f
所有的小数均默认是double类型,要用float类型时必须进行类型转换
在运算中直接使用的整数均为int类型,所以int类型一下的类型与其运算时都会变为int类型,若赋值给int一下的类型,则会损失精度。
如short a=2 ; a=a+2;输出a是会损失精度,因为a+2的结果为int类型,会溢出。
但“+=”会自动做类型转换,a+=2时,此时不会损失精度
6.表达式的概念
表达式的概念:操作数+运算符+操作数,就组成一个表达式
7.运算符
算术运算符
算术运算符(+、-、*、/、%、++、–、注意区分前置和后置的区别)
/和%区别:前者为除号,后者为取模
%(取模)的正负号由被除数(分子)决定,如3%2,-3%2结果分别为1和-1
+加法运算:运算中从前往后执行,+(加号)前后数据一个为字符时,则都会转换为字符后运算
System.out.println(1+1+“1”);//21
System.out.println(“1”+1+1);//111
+(加号):在左右操作数均为数值时,+为加号;若有一个是字符,+为连接符。
字符串和任意类型的数据相加,结果均为字符串
/除法结果数据类型
分子和分母同类型时,结果类型还是该类型,如10/3 结果为3.
10.0/3.0 结果为3.33335
若均为整数时,结果不会四舍五入,不会3.9取为4,结果是取去除余数得到的整数
分子和分母类型不同时,取范围大的数据类型,如10/3.0 结果为3.3335
n++:会先把原先的结果输出,再加1
++n:会先加1后,在输出
int a = 8;
int b = (a++)+(++a)+(a*10);//118
分析:a++先输出8,在加1使a变为9;++a先加1再输出,a变为10;最后加100,得到118
注意:
a.运算中对变量进行操作,会改变变量
b.println中对变量进行操作,也会改变变量
赋值运算符
赋值运算符(= , +=, -=, *=, /=, %=)
short s=1; s = s+1; //丢失精确度 运算时,ss + 1会转换为int类型
short s=1; s+=1;//s 2 运算时, += 会自动做类型转换的处理
关系(比较)运算符
==:相等
!=:不相等
:大于
<:小于
=:大于等于
<=:小于等于
关系运算符的结果都是boolean类型,true 或者 false
注意:=和==区别
int x = 10;
int y = 10;
boolean flag = (x == y);
//boolean flag = (x = y);//error
分析:先给x赋值为y,再给flag赋值,x为数值,flag为布尔值,会报错。将flag类型改为int就不会报错了
System.out.println(flag);//true
boolean b1 = true;
boolean b2 = false;
boolean b3 = (b1 == b2);
System.out.println(b3);//false
boolean b4 = (b1 = b2);//flase 此时不存在上题的类型冲突,不会报错
逻辑运算符
&(与) 、|(或) 、!(非)&&(短路与)、||(短路或)、^(异或)
语法规则
& 一个为假,则为假 逻辑与
| 一个为真,则为真 逻辑或
!非false则true,非true则false
&& 一个为假,则为假 短路与
|| 一个为真,则为真 短路或
^ 两个不同,则为true,相同则为false
短路与和逻辑与的区别(&& vs & || vs |)
短路与,只要前面可以确定结果是false,那么后面就不管了
逻辑与,就算前面可以确定结果是false,它也要去计算后面的值
短路或,只要前面可以确定结果是true,那么后面就不管了
逻辑或,就算前面可以确定结果是true,它也要去计算后面的值
证明逻辑与或和短路与非的区别
方法一
public class Zy07{
public static void main(String[] args){
//设计一个实验证明&和&&的区别
/*
结论:
短路与&&,只要前面可以确定结果是false,那么后面就不管了
逻辑与&,就算前面可以确定结果是false,它也要去计算后面的值
短路或||,只要前面可以确定结果是true,那么后面就不管了
逻辑或|,就算前面可以确定结果是true,它也要去计算后面的值
设计个实验证明这个结论
*/
boolean c1 = 1>2&&2>(3/0);
//boolean c1 = 1>2&2>(3/0);
/*使用&时会报错,说3的除数不能为0,说明运算了后面的部分
而使用&&时不会报错
*/
System.out.println(c1);//false
}
}
该法利用分母不能取零来判断
方法二
public class Test2{
public static void main(String[] args){
int a=1;
int b=1;
System.out.println(a<0&b++>0);//false
System.out.println(b);//2
System.out.println(a<0&&b++>0);
System.out.println(b);//2
}
}
该法利用a和b是否发生变化来判断
三目运算符
格式:
(关系表达式)?表达式1:表达式2;
如果关系表达式结果为true,运算后的结果是表达式1;
如果关系表达式结果为false,运算后的结果是表达式2;
练习:取两个数中的最大值
8.转义字符
定义:通过“\”来改变后面所跟字符的含义
JavaSE教程-02Java基本语法-思维导图的更多相关文章
- 学习Python最好的方法就是实践和教程并行,以下有一些资源和教程,还有一些学习思维导图:
1.Python 的 14 张思维导图下载地址: https://woaielf.github.io/2017/06/13/python3-all/ 2.Python基础教程|菜鸟教程: http:/ ...
- SpringBoot图文教程「概念+案例 思维导图」「基础篇上」
有天上飞的概念,就要有落地的实现 概念+代码实现是本文的特点,教程将涵盖完整的图文教程,代码案例 每个知识点配套自测面试题,学完技术自我测试 本文初学向,所以希望文中所有的代码案例都能敲一遍 大哥大姐 ...
- 【MSSQL教程】#001 整体思维导图
整个MSSQL体系的一个思维导图,方便理解整个MSSQL需要学习那些方面的知识.
- JavaSE教程-01初识Java-思维导图
图片看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 2)右击在新标签中打开放大查看. 分解: 1.计算机基本概念的普及 硬件 cpu.内存.硬盘等 软件 系统级软件 Windows.Linu ...
- 孔浩老师的 Struts2 教程听课笔记(思维导图)
最近有空重头学习了一遍孔浩老师的 Struts2 教程,重新写了一份听课笔记.后面常用 form 标签.服务器端验证.异常处理因为时间问题,没有来得及整理.后续我会抽空补上.最近忙着准备笔试.面试. ...
- 数据库MySQL基本语法思维导图
- PHP基础语法思维导图
- JavaSE教程-02Java基本语法-BUG:易错点
1.区别文档注释和多行注释 多行注释:多一个* 多行注释 格式: /* 注释文字 */ 文档注释 格式:/** 注释文字 */ 2.有关变量名.类名.方法名等注意点 由字母.数字.下划线.$组成,但不 ...
- JavaSE教程-02Java基本语法-练习
请说出下面的运算结果及解释为什么 System.out.println(1+1+"1");//? System.out.println("1"+1+1);//? ...
随机推荐
- 利用 Forcing InnoDB Recovery 特性解决 MySQL 重启失败的问题
小明同学在本机上安装了 MySQL 5.7.17 配合项目进行开发,并且已经有了一部分重要数据.某天小明在开发的时候,需要出去一趟就直接把电脑关掉了,没有让 MySQL 正常关闭,重启 MySQL 的 ...
- TDD 中关于mock一些理解
最近在写代码的UT时case注意到: 在写某个类的test suit时,如果这个类既有组合(Composition),又有聚合关系(Aggregation). 组合关系(Composition):部分 ...
- struts1实现简单的登录功能(附源码)
环境:MyEclipse 14 ...
- LED操作
灯上拉 GPIO_InitTypeDef GPIO_InitStruct; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE); GPIO_InitS ...
- POJ 3261 出现至少K次的可重叠最长子串
题意就是给一列数字,求最长的一个子串,并且满足子串在原数串中出现至少K次,子串可以重叠. 解法是将问题转为判定性问题,二分子串的长度,判定是否满足重复至少K次.判定方法是经典的根据子串长度将Heigh ...
- ASP.NET MVC5请求管道和生命周期
请求处理管道 请求管道是一些用于处理HTTP请求的模块组合,在ASP.NET中,请求管道有两个核心组件:IHttpModule和IHttpHandler.所有的HTTP请求都会进入IHttpHandl ...
- THINKPHP3.2 中使用 soap 连接webservice 解决方案
今天使用THINKPHP3.2 框架中开发时使用soap连接webservice 一些浅见现在分享一下, 1.首先我们要在php.ini 中开启一下 php_openssl.dll php_soap. ...
- DirectFB 之 环境配置
1. 准备 directFB下载地址:http://www.directfb.org/index.php?path=Main%2FDownloads 本人采用的版本是DirectFB-1.5.3.ta ...
- php中表单提交复选框与下拉列表项
在赶项目中,抽出半个小时来写篇博客吧,这个功能说实话不难,为什么要写呢,因为在复选框那里有小小的难点,我试了好多遍才试成功的,希望能为以后需要帮助的同学提供点思路. 先看一下我做的效果吧 就是给每个业 ...
- python基础——正则表达式
正则表达式 正则表达式为高级的文本模式匹配.抽取.与/或文本形式的搜索和替换功能提供了基础.简单的说,正则表达式是一些由字符和特殊符号组成的字符串,他们描述了模式的重复或者表述多个字符,于是正则表达式 ...