学java被“劝退”的第五天

前言:欢迎来到我的小窝,这里是一个新手程序员的起航之旅,记录着从“入坑”到“退坑”每一天……
  • 计划任务
  • 完成任务
任务描述:
Java语言作为当今主流的高级语言,很多的小伙伴已经开始学习java之旅了,
但是作为初学者,java基础语法是必备技能,只有熟练掌握了解java基础语法之后,
你才能更好地深入java语言的世界,开始你的java编程之旅……
知识点归纳:
1.文档注释

文档注释皆可嵌套单行注释,起解释说明的作用

/**
*文档注释,使用javadoc.exe生成API文档注释
*/
//单行注释
/*
var foo = 'bar';
var foo1 = 'bar1'; 
多行注释*/
2.标识符

命名规则

  • 组成:字母,数字,下划线_,美元符号$(!数字不能开头)
  • 严格区分大小写
  • 关键字和保留字不能作为标识符使用
    1. 关键字:已经被java语法占用的字
    2. 保留字:goto const 将来会被java所使用的字

命名规范

  • 见名知意
  • 驼峰命名原则
    1. 类名|接口名 (每个单词首字母大写 HelloWorld)
    2. 变量名|方法名 (第一个单词小写,第二个单词开始,每个单词首字母大写 helloWorld)
    3. 常量名 (全部大写,每个单词之间_连接 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基本数据类型

整型

  1. byte 字节型 1个字节 [-128,127]
  2. short 短整型 2个字节 [-2的15次方,2的15次方-1]
  3. int 整型 4个字节 [-2的31次方,2的31次方-1] ,默认为int long需要在字面量后加 l/L
  4. 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类型赋值,常量的值在编译期间能够确定


自动类型提升 (小转大)

  1. 运算后的结果类型<int类型,会自动提升成为int
  2. 存储多种类型的数据参与运算时候,最终结果为参与运算的最大类型
  3. byte->short->int ->long->float->double

强制类型转换(大转小)

  1. 会损失精度
  2. 小范围类型 变量 = (小范围类型) 大范围类型数据;
5.运算符

注意

  • 操作数 运算符左右两边的数为操作数
  • 表达式 运算符连接两边的操作数整体称为表达式 a+b

1.按作用分类

  • 算数运算符
    • 加减乘除(+ - * /)取余(%)自增自减(++ --)
    • ++ – 单独使用,放在变量前后,没有区别;a++; ++a;
    • ++ – 如果不是单独使用,放在变量前后有明显区别
      • 在变量前面:先+1,-1再使用变量
      • 在变量后面:先使用变量,再对变量+1,-1
  • 赋值运算符
    • 基础赋值运算符 = (优先级最低)
    • 扩展赋值运算符 += -= *= /= %= (算数运算符+基础赋值运算符)
      1. 注意:编译期间编译器会自动把适当优化成扩展赋值运算符的写法
      2. 优点: 提高执行效率,自动做强制类型转换 缺点不直观
  • 比较运算符|关系运算符
    • (> < >= <=) 只能比较byte,short,int ,long ,float,double,char
    • (== !=) 可以比较任意类型数据
  • 逻辑运算符
  1. & 与: 一个为false就是false,两个都为true才是true
  2. | 或:一个为true就是true,两个都为false才是false
  3. ! 非:!true–>false !false–>true
  4. ^ 异或:相同为false,不同为true
  5. 短路运算符:如果左边操作数就能够决定最终表达式的结果,右边的操作数不再执行
    1. && : 一个为false就是false,两个都为true才是true
    2. || : 一个为true就是true,两个都为false才是false
  • 条件运算符(三元运算符)
    • boolean表达式 ? 值1 : 值2;
    • 1.计算boolean表达式,得到boolean结果
    • 2.如果boolean结果为true,取值1;如果boolean结果为true,取值2
  • 位运算符
  1. 执行流程:先把操作数转为二进制,再根据运算符的规则进行运算,得到二进制结果然后再转为十进制
  2. & 对两个操作数统一位置的数据进行运算,一个为0就是0,两个都为1才是1
  3. | 对两个操作数统一位置的数据进行运算,一个为1就是1,两个都为 0才是 0
  4. ^ 对两个操作数统一位置的数据进行运算,相同为0,不同为1
  5. 以上三个运算符当操作数为boolean作为逻辑运算符,操作数为整数作为位运算符
  • 位移运算符
  1. 执行流程:先将左边的操作数转为二进制,然后向某一个移动第二个操作数个位数(推荐使用位移运算符)
  2. (<<左移): 向左移动第二个操作数个位数,空位补0 规律 : 8<<3==? 8*2^3
  3. (>>右移) : 向左移动第二个操作数个位数,移出位置忽略不计,剩下的就为2进制结果 规律 : 8>>3==? 8/2^3
  1. 按操作数的个数分类
  • 一元运算符|单目运算符 操作数只有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不一定能用switch
   switch(表达式|变量){
   ///(表达式|变量)中的数据只能为 : byte,short,int ,char , jdk1.5->枚举 , jdk1.7->字符串
      case1:
           语句体1;
           break;
       case2:
           语句体2;
          break;
          /*如果没有break,就会发生case穿透恰当的时候可以选择通
          过case穿透实现,简化switch结构*/
        ....
      default :
      //default可以定义在switch语句中的任意位置,一般为最后
           语句体n;
            break;
            }

最后,这是今天的思维导图总结:
请添加图片描述

总结:

今天是愉快的一天……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值