学java被“劝退”的第五天
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从“入坑”到“退坑”每一天……
- 计划任务
- 完成任务
任务描述:
Java语言作为当今主流的高级语言,很多的小伙伴已经开始学习java之旅了,
但是作为初学者,java基础语法是必备技能,只有熟练掌握了解java基础语法之后,
你才能更好地深入java语言的世界,开始你的java编程之旅……
知识点归纳:
1.文档注释
文档注释皆可嵌套单行注释,起解释说明的作用
/**
*文档注释,使用javadoc.exe生成API文档注释
*/
//单行注释
/*
var foo = 'bar';
var foo1 = 'bar1';
多行注释*/
2.标识符
命名规则
- 组成:字母,数字,下划线_,美元符号$(!数字不能开头)
- 严格区分大小写
- 关键字和保留字不能作为标识符使用
- 关键字:已经被java语法占用的字
- 保留字:goto const 将来会被java所使用的字
命名规范
- 见名知意
- 驼峰命名原则
- 类名|接口名 (每个单词首字母大写 HelloWorld)
- 变量名|方法名 (第一个单词小写,第二个单词开始,每个单词首字母大写 helloWorld)
- 常量名 (全部大写,每个单词之间_连接 HELLO_WORLD)
3.变量
3.1 变量是什么
程序执行过程中,其值可以发生改变的量 (不是值,而是一块空间)
3.2 变量如何定义
声明的同时赋值 | 数据类型 变量名 = 数据值;
//例:int num=1
先声明 后赋值 | 数据类型 变量名; 变量名 = 数据值;//例:int num; num=1;
3.3 变量的作用域
从变量的声明开始到包括它的离它最近的同一级 } 结束,局部作用域{}
3.4 变量的分类
局部变量 ==> 定义在局部位置(方法中|语句块中) 使用之前必须已经声明并且已经赋值,没有默认值
成员变量 ==> 定义在(类中 方法外) 定义在成员位置的变量,只声明不赋值,存在默认值
3.5 常量
常量是在程序执行过程中其值不能发生改变的量
- 字面值常量 ==>整数常量 0 100 -1 …小数常量 1.0 0.5 -2.3 …布尔常量 true false 空常量 null
- 自定义常量 ==>被final的变量为最终常量
//例:final int NUM=1
4.数据类型
4.1基本数据类型
整型
- byte 字节型 1个字节 [-128,127]
- short 短整型 2个字节 [-2的15次方,2的15次方-1]
- int 整型 4个字节 [-2的31次方,2的31次方-1] ,
默认为int long需要在字面量后加 l/L
- long 长整型 8个字节 [-2的61次方,2的61次方-1]
字符型
- char 字符型 2个字节
- 一对’ '包裹任意一个字符
- 通过0~65535之间的整数表示字符 Unicode字符集
布尔型
- boolean 布尔型 1个字节 1bit有效位
4.2 引用数据类型(类class 接口 interface 数组 String[])
4.3 进制转换
- 整型表现方式
- 二进制 由0~1组合, java中由0b|0B开头
- 八进制 由0·7组合,java中由0开头
- 十进制 默认
- 十六进制 由09,af|A~F组合, java中由0x|0X开头
- 浮点表现防止
- 小数的整数位为0的时候,0可以省略 0.6---->.6
- 科学计数法
1.23e2 --> 1.23*10^2 --> 123.0
1.23e-2 --> 1.23/10^2 -->0.0123
4.4 数据类型转换
注意 :
boolean类型不参与类型转换
如果符合类型范围要求大小的常量就能成功为byte,short,char类型赋值,常量的值在编译期间能够确定
自动类型提升 (小转大)
- 运算后的结果类型<int类型,会自动提升成为int
- 存储多种类型的数据参与运算时候,最终结果为参与运算的最大类型
- byte->short->int ->long->float->double
强制类型转换(大转小)
- 会损失精度
- 小范围类型 变量 = (小范围类型) 大范围类型数据;
5.运算符
注意
- 操作数 运算符左右两边的数为操作数
- 表达式 运算符连接两边的操作数整体称为表达式 a+b
1.按作用分类
- 算数运算符
- 加减乘除(+ - * /)取余(%)自增自减(++ --)
- ++ – 单独使用,放在变量前后,没有区别;
a++; ++a;
- ++ – 如果不是单独使用,放在变量前后有明显区别
- 在变量前面:先+1,-1再使用变量
- 在变量后面:先使用变量,再对变量+1,-1
- 赋值运算符
- 基础赋值运算符 = (优先级最低)
- 扩展赋值运算符 += -= *= /= %= (算数运算符+基础赋值运算符)
注意
:编译期间编译器会自动把适当优化成扩展赋值运算符的写法优点
: 提高执行效率,自动做强制类型转换缺点
不直观- 比较运算符|关系运算符
- (> < >= <=) 只能比较byte,short,int ,long ,float,double,char
- (== !=) 可以比较任意类型数据
- 逻辑运算符
& 与
: 一个为false就是false,两个都为true才是true| 或
:一个为true就是true,两个都为false才是false! 非
:!true–>false !false–>true^ 异或
:相同为false,不同为true短路运算符
:如果左边操作数就能够决定最终表达式的结果,右边的操作数不再执行
- && : 一个为false就是false,两个都为true才是true
- || : 一个为true就是true,两个都为false才是false
- 条件运算符(三元运算符)
boolean表达式 ? 值1 : 值2;
- 1.计算boolean表达式,得到boolean结果
- 2.如果boolean结果为true,取值1;如果boolean结果为true,取值2
- 位运算符
执行流程
:先把操作数转为二进制,再根据运算符的规则进行运算,得到二进制结果然后再转为十进制- & 对两个操作数统一位置的数据进行运算,一个为0就是0,两个都为1才是1
- | 对两个操作数统一位置的数据进行运算,一个为1就是1,两个都为 0才是 0
- ^ 对两个操作数统一位置的数据进行运算,相同为0,不同为1
- 以上三个运算符当操作数为boolean作为逻辑运算符,操作数为整数作为位运算符
- 位移运算符
执行流程
:先将左边的操作数转为二进制,然后向某一个移动第二个操作数个位数(推荐使用位移运算符)- (<<左移): 向左移动第二个操作数个位数,空位补0
规律 : 8<<3==? 8*2^3
- (>>右移) : 向左移动第二个操作数个位数,移出位置忽略不计,剩下的就为2进制结果
规律 : 8>>3==? 8/2^3
- 按操作数的个数分类
- 一元运算符|单目运算符 操作数只有1个 ++ – 正号 符号
- 二元运算符|双目运算符 操作数只有2个 + - * / …
- 三元运算符|三目运算符 条件运算符
6.工具类
Scanner(接受用户输入键盘的内容)
//1.导包
import java.util.Scanner;
//2.创建Scanner的变量|引用
Scanner sc = new Scanner(System.in);
//3.使用功能
引用.nextInt() 接收用户键盘输入的int类型的整数 **
引用.nextByte() 接收用户键盘输入的byte类型的整数
引用.nextShort()
引用.nextLong()
引用.nextFloat()
引用.nextDouble()
引用.next() 接收用户键盘输入的字符串,从有效字符开始接收,遇到空格停止接收,直到遇到enter结束功能
引用.nextLine() 接收用户输入一整行内容,包含空格,遇到enter结束功能
使用 nextLine()功能之前如果存在系列next功能,需要处理遗留enter问题
//4.释放资源
sc.close();
Random(产生随机数)
//1.导包import java.util.Random;
//2.创建Random类型的引用
Random ran = new Random();
//3.使用功能
ran.nextInt(); 产生int范围内的随机数
ran.nextInt(n); 产生[0,n)范围内的随机整数
[min,max) ran.nextInt(max-min) + min
推导 :/*ran.nextInt(max)-->[0,max) ran.nextInt(max) + min -->[min,max+min)ran.nextInt(max-min) + min -->[min,max)[min,max] ran.nextInt(max-min+1) + min*/
7.流程控制
1.顺序结构 (从上到下执行)
2.选择结构(满足条件执行对应的代码段)
if语句
单分支if(boolean表达式){满足条件执行的代码段;}执行流程 :1.boolean表达式,得到boolean结果2.如果结果为true,执行{}中的语句体如果结果为false,跳过if结构双分支if(boolean表达式){满足条件执行的代码段;}else{不满足条件执行的代码段;}无论是否满足条件都能得到结果多分支if(条件1){语句体1;}else if(条件2){语句体2;}else if(条件3){语句体3;}....else{语句体n;}
switch语句
if 区间判断,定值判断switch定值判断区别 : 能用switch都能使用if代替,能用if不一定能用switchswitch(表达式|变量){///(表达式|变量)中的数据只能为 : byte,short,int ,char , jdk1.5->枚举 , jdk1.7->字符串case 值1:语句体1;break;case 值2:语句体2;break;/*如果没有break,就会发生case穿透恰当的时候可以选择通过case穿透实现,简化switch结构*/....default ://default可以定义在switch语句中的任意位置,一般为最后语句体n;break;}
最后,这是今天的思维导图总结:
总结:
今天是愉快的一天……
学java被“劝退”的第五天相关推荐
- 【零基础学Java】—Socket类(五十五)
[零基础学Java]-Socket类(五十五) Socket类:该类实现客户端套接字,套接字是指两台设备之间通讯的端点. 在Java中,提供了两个类用于实现TCP通信程序 客户端:java.net.S ...
- 【零基础学Java】—TCP通信(五十四)
[零基础学Java]-TCP通信(五十四) TCP通信:面向连接的通信,客户端和服务器端必须经过三次握手,建立逻辑连接,才能通信(安全). 通信的步骤: 服务器端先启动 服务器端不会主动的请求客户端, ...
- 【零基础学Java】—网络编程(五十三)
[零基础学Java]-网络编程(五十三) 一.软件结构 C/S结构:全称为Client/Server结构,是指客户端和服务器结构,常见的程序有QQ.迅雷等软件 B/S:全称为Browser/Serve ...
- 学java被“劝退”的第九天
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从"入坑"到"退坑"每一天-- 计划任务 完成任务 任务描述: 正在苦恼怎么将面向对象向大家叙述, ...
- 学java被“劝退”的第七天
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从"入坑"到"退坑"每一天-- 计划任务 完成任务 任务描述: java是一个面向对象oop的语言 ...
- 学java被“劝退”的第六天
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从"入坑"到"退坑"每一天-- 计划任务 完成任务 任务描述: 流程控制语句是用来控制程序中各语句 ...
- 学java被“劝退”的第三天
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从"入坑"到"退坑"每一天-- 计划任务 完成任务 任务描述: 今天的任务是开始java环境变量的 ...
- 学java被“劝退”的第八天
前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从"入坑"到"退坑"每一天-- 计划任务 完成任务 任务描述: 以前我们学习的基本数据类型,定义一 ...
- 跟我学 Java 8 新特性之 Stream 流(五)映射
转载自 跟我学 Java 8 新特性之 Stream 流(五)映射 经过了前面四篇文章的学习,相信大家对Stream流已经是相当的熟悉了,同时也掌握了一些高级功能了,如果你之前有阅读过集合框架的基 ...
最新文章
- 棋盘格检测--Automatic camera and range sensor calibration using a single shot
- Git的撤销操作 git checkout -- <file>
- conda install pytorch torchvision cudatoolkit=10.2 -c pytorch 报错
- python date time
- 【Java代码】未分页数据根据参数进行分页(粘贴可用)
- 排序算法时间复杂度、空间复杂度、稳定性比较
- JavaSE——面向对象基础(思想、类与对象、构造方法、重载、匿名对象)
- 初步认识图像的直方图
- java反射机制的实现机制_Java反射机制实践
- .net学科-杨中科-Unity3D视频教程
- 虚拟机桥接模式下和windows相互ping通
- 数仓OLAP(一)--即席查询 Kylin
- c语言程序方差的计算公式,方差计算公式
- 实现DevOps的三步工作法
- 寄存器 SRAM DRAM存储单元区别
- c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
- [微云助手/微小云怎么用]如何设置群组群发
- 纺织ERP_印染ERP软件_指点ERP简介
- Win10下SCP命令免密码上传、下载工程师服务器上的文件
- 计算机一级wps必背知识点,计算机一级WPSoffice考前复习题