Java-白痴自学1.1

Java程序的基本结构

首先咱们就先上原料,然后开始盘它!

package ErrorCodesIT;        //创建包,当前所在包名

import java.util.Scanner;         //导入所用到的其他包

public class HelloWorld {        //创建类,HelloWorld类

    public static void main(String args[]) {            //定义主方法
    
        Scanner sca=new Scanner(System.in);
        System.out.println("请输入当前年份:");
        int input=sca.nextInt();
        int remain=input%2;
        
        if(remain==1) 
            System.out.println(input+"年为奇数年");
        else
            System.out.println(input+"年是偶数年");
    }

}

注意:

Java严格区分大小写

public static void main(String args[])“,即main主方法是Java应用程序的入口点,程序从该方法开始执行,且该方法是固定死要这样写的,不可改写,否则运行出错

Java代码编写时,必须要在英文输入状态下输入

一个语句结束必须要用引号“;”结尾

-整个Java程序的层次关系我用一个图来简要说明:

各元素包含关系
简单点说就是:

  • 最大的外层是一个 package(包),该包里可以导入其他的包
  • 里面可以创建多个 class(类)<建议一个包只装一个类>
  • 里面可以定义多个 成员变量方法
  • 方法 里再定义的变量就是 局部变量

Java标识符

给需要起名字的,起个名字,该名字即为 标识符

标识符命名有规则:

  1. 只能由 字母(广义上的)、数字下划线美元符号 组成,且 不能以数字开头
  2. 严格区分大小写
  3. Java 使用 Unicode标准字符集,之前提到的 字母 ,指的是 该字符集中所有字符
  4. 不能用保留字

Java保留字

Java保留字包括:

  • 关键字(51个)
  • 未使用的保留字(2个)(考虑未来的扩展性)

注:保留字不可被用来做 标识符

详情链接:Java保留字详情

Java基本数据类型

上图:
在这里插入图片描述

注:

  • 1B(一个字节)= 8 bit(8位) ,数据为系统分配给该类型的空间
  • longfloat 类型赋值时,末尾必须加相应字符double 类型不强制要求
  • char 类型,赋值时,单引号‘ ’ 将一个字符括起来
  • 转义字符,‘\’ 开头,例:‘\n’ ,作为值时,也要被单引号‘ ’ 将括起来

单精度float:显示时,小数点1位+7位小数 = 8位

双精度double:显示时,小数点1位+15位小数 = 16位

浮点型数据(小数的二进制表示法)在内存中的存储方式:符号位 + 指数位 + 小数位(即尾数位)

取值范围取决于指数位计算精度取决于小数位(尾数)
精度说明

另:别看上图里有很多小数位,但是实际里,精度仅能控制在有效位范围内,超出后就乱来了,不再精确。(更具体的,我也还没完全了解透彻,待后续补充)

常量与变量

  • 常量(final变量):经过一次赋值后,其值不能被改变
  • 变量:其值能改变
    • 成员变量:在类中被声明
      • 实例变量:常规方式变量声明
      • 静态变量:static 数据类型 变量名[=值] 例(在Student类中):static int year = 2020,该方式声明的变量可 跨类调用 ,调用方法: 类名.静态变量名 例:System.out.println(Student.year)
    • 局部变量:在类中的 方法中 被声明

注:两者都要先声明才能使用

另外:
把分配存储空间的声明称为“定义”,把不分配存储空间的称为“声明”

局部变量与成员变量 重名 时,在局部变量作用域内,成员变量被隐藏而失效,只有局部变量有效

变量的有效范围(作用域):除了静态变量和重名而被隐藏失效的情况外,变量在哪个代码段里被声明(以大括号界定),就在该代码段里有效(包括该代码段里嵌套的代码段哦)

如果定义的常量是成员变量,必须在定义时赋初值

  • 变量声明规则:

    1. 使用有效、合法的标识符(最好只用英文字母)
    2. 变量不能重复(防止调用出错)
    3. 选择有意义的单词作为变量名(增强可读性和可维护性)
  • 常量声明格式为: final 数据类型 常量名[=值] 例:final float PI = 3.14
    (常量名最好用 全大写英文字母

运算符

  • 赋值运算符,左边 必须是 一个变量 ,且赋值可连接:a=b=c=99(不建议这样)

  • 算术运算符(0不能做除数,否则报错:ArithmeticException)

  • 自增/自减运算符(++/- - 写在前: ++a,表示在使用a前先给当前a+1或者-1之后,才可使用一次自增自减结果后的a,写在后则反之 ,先使用a,再进行一次自增或自减,然后做下一步动作)

  • 比较运算符(结果值要么为false要么为true

  • 逻辑运算符(‘&&’、‘||’ 和 ‘&’、‘|’ 的区别:前两者为‘短路’运算符,左端的表达式结果可直接推出最终结果,则不再做其他运算,而后两者要做所有运算,为‘非短路’运算符,推荐使用前两者)例: 2>3 && 4<9 ,左端结果为false,且在做‘与运算’,直接得最终结果:false,而不再做右端运算

  • 位运算符(操作数 为整型和字符型,直接操作内存中二进制形式表示的数据)

    1.‘按位取反’运算(~a)
    2.‘按位与’运算(a&b)
    3.‘按位或’运算(a|b)
    4.‘按位异或’运算(a^b):异值(0和1)为1,同值为0

    • 移位运算符( 操作数类型: byte、short、char、int、long)

    5.‘左移’运算(66<<1):内存中整个66的二进制串向移1位,空出位全补0,最终值变
    6.‘右移’运算(99>>1):内存中整个99的二进制串向移1位,看最高位,若最高位为1全补1,若最高位为0全补0
    7.‘无符号右移’运算(88>>>1):内存中整个66的二进制串向移1位,空出位全补0

  • 三元运算符:‘(表达式 ? 表达式true往这走 : 表达式false往这走)’
    例:(int a = 54>36?100:200)结果为100

算符优先级

即:在混合运算情况下的运算顺序~

一张表你就懂了,忘记时候自己来翻,久了就熟了
Java运算符优先级

简单归纳一下就是:

括号 > 一元运算(正负max) > 算术运算(移位min) > 比较运算 > 逻辑运算(非短路 > 短路)> 赋值运算

Java里的类型转换

  • 自动类型转换(隐式类型转换):小空间类型自动转到大空间类型(或低精度自动转到高精度)

  • **强制类型转换(显式类型转换):

     方法: (要转的类型)待转类型的数据  例:int a = (int)36.98
    

    大空间类型强制转到小空间类型(或高精度自动转到低精度)**

代码注释和编码规范

这个标题主要是为了让你编写出来的代码更美丽,让别人读起来更轻松易于理解。

Java源程序的任意位置都可添加注释语句,被注释内容会被Java编译器忽略而不进行编译

  • 注释方式:

    1. 单行注释:‘// 注释内容’
    2. 多行注释:‘/* 注释内容 */’ (不可嵌套使用)
    3. 文档注释:‘/** 注释内容 */’
      (出现在任何声明之前<如类的声明>,会被javadoc工具读取作为javadoc文档内容)
  • 程序中的注释要占程序代码总量的20%~50%,可见其重要性

合适的位置添加简洁有效的注释,非常有必要,希望这能成为大家的习惯,而不是因为嫌麻烦去忽略掉!

  • 编码规范(使代码规整,这个在Java官方好像有这文档)
    这东西应该内化为自我的编码风格~

    1. 每条语句独占一行
    2. 每条语句要以英文状态下的分号‘;’结束(否则报错:illegal character)
    3. 声明变量时分行声明,即便是同类型的,这样方便对变量进行注释说明
    4. 再次强调:要合理注释
    5. 还有很多,若我找到官方文档链接再贴出来给大家

若对小主有用,求赞哟~

<也欢迎收藏,一起学习交流>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值