java基础语法

java基础语法的总结

学习了java两年左右了,为了复习的方便,对java基础进行了一些总结,包括以下几个方面:

  1. 注释、标识符、关键字
  2. 数据类型
  3. 类型转换
  4. 变量、常量
  5. 运算符
  6. 包机制、JavaDoc

注释

  • 注释并不会被执行,是给我们写代码的人看的
  • 书写注释是一个非常好的习惯
  • 平时写代码一定要注意规范

java中的注释有三种:

  • 单行注释 //
  • 多行注释 /* */
  • 文档注释 /** * */

标识符

关键字

关键字不能起名字

JAVA 所以的组成部分都需要名字、类名、变量名以及方法名都被称为标识符

标识符注意点

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始;"大小写十分敏感“
  • 首字母之后可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或者数字的任何字符组合;“特殊符号不能使用”
  • 不能使用关键字作为变量名或者方法名。
  • 合法标识符举例:age、 $salary、 _value、 __1_value
  • 非法标识符举例:123abc、 -salary、 #abc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有变量都必须先定以后才能使用;安全性高,但速度慢。

弱类型语言

Java的数据类型分为两大类

  • 基本类型(primitive type)

    整数
    byte 1字节 8位 java范围2(7)-1到-2(7)
    short 2字节 很少使用 2(15)-1到-2(15)
    int 4字节 最常用 2(31)-1到-2(31)
    long 8字节 长整形 2(63)-1到-2(63)

    小数
    float 4字节
    double 8字节

    其它
    char 2字节 无符号 2(15)-1
    boolean 1字节 代表真true or 假false

引用类型(reference type)

String 字符串 数组 类 接口

image-20210202172711205

什么是字节

  • 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。
  • 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示。
  • 1B(byte,字节) = 8bit(位)
  • 字符:是指计算机中使用的字母、数字、字和符号
  • 1bit表示1位
  • 1Byte表示一个字节 1B=8b
  • 1024B=1KB
  • 1024KB=1M
  • 1024M=1G

整数拓展:

进制:
  • 二进制0b (Integer.toBinaryString)二进制代码

    1010转换0* 2(0)+1* 2(1)+0* 2(2)+1* 2(3)=0+2+0+8===>10

  • 十进制

    (1011)2次方,转换1* 2(3)+0* 2(2)+1* 2(1)+1* 2(0)=8+0+2+1=11(11)10次方

    123转换3* 10(0)+2* 10(1)+1* 10(2)=3+20+100

  • 八进制0 (0-7)

    067转换7* 8(0)+6* 8(1)=48+7=(55)10次方

  • 十六进制0x 0-9 A-F(10-16) (Integer.toHexString)十六进制代码

    转换10* 16(0)+15* 16(1)+14* 16(2)+9* 16(3)=10+240+3584+36864

进制转换
n进制转换10进制

公式:第一位* n(0)+第二位 n(1)+…+第x位 n(x-1)次方**

二进制转十进制
​ 十进制转二进制
​ 十进制 二进制

10进制转2进制
  • 短除法:

    35:(35/2=17(余1)/2=8(1)/2=4(0)/2=2(0)/2=1(0)/2=0(1)反读)=100011
    100011 1* 2(0)+1* 2(1)+0* 2(2)+1* 2(5)=1+2+32=35(正向的)

  • 找次方数:

    35:35-2(5)=3-2(1)=1-2(0)=100011(有数的次方上加1,没有的补0)

    216:216-2(7)=88-2(6)=24-2(4)=8-2(3)=11011000

负数转换

java采用二进制补码方式
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
把1开头的认为负数
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1

浮点数拓展:

  • float; double 不够准确; 实际过程中浮点数无限且离散的,但是float是有限的,他会自动舍入误差,大约接近,但不等于;
  • 银行等准确的计算工具最好使用BigDecimal 数学工具类
  • 精确的对账最好完全避免使用浮点数进行比较
  • 精确的对账最好完全避免使用浮点数进行比较
  • 精确的对账最好完全避免使用浮点数进行比较

字符拓展:

所有的字符本质还是数字

Java使用Unicode字符集编码,格式’\u0000’-’\uffff’

(Unicode是世界通用的定长字符集,所有的字符都是16位,2个字节)

对于不方便输入的字符采用转义字符表示

转义字符:

如:’\n’“换行”,‘\t’“空格”,‘\’,‘\b’,‘\r’,‘"’,‘\u4e2d’.
数字编码:‘0’:48,‘1’: 49…
英文编码:‘A’:65,‘B’:66…
小写英文:‘a’ : 97,‘b’:98…

类型转换:
  • 由于Java是强类型语言,所有需要有些运算的时候的,需要用到类型转换。

    低 -------------------------------------------------------------->高

    byte, short, char -> int -> long -> float -> double

    (小数的优先级高于整数)

  • 运算中,不同类型的数据先转换为同一类型,然后进行运算。

  • 强制类型转换 高 - - 低

    ​ int i=128;

    ​ byte a=(byte)i;(强制转换 把高转低)

  • 自动类型转换

    由低到高直接输入,无需强制转换

  • 注意

    1. 不能对布尔值进行转换
    2. 不能把对象类型转换为不相干的类型
    3. 在把高容量转换到低容量的时候,需要强制转换
    4. 转换的时候可能存在内存溢出,或者精度问题!

变量

  • 变量是什么:就是可以变化的量!
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基层的存储单元,其要素包括变量名,变量类型和作用域。
  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    • 变量名必须是合法的标识符。
    • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量作用域

  • 类变量

    在类里,整个类里可以使用,前面必须加static;“static int a = 666;”

  • 实例变量

    在类里,从属于对象;“int age;//0”

    如果不自行初始化,会赋予这个类型的默认值 0,0.0

    布尔值:默认是false;除了基本类型,其他的默认值都是null;

  • 局部变量

    在方法中,使用时必须声明和初始化值;“int cba = 666;"

常量

  • 常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

  • 所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不允许被改变。

    final 常量名 = 值;
    final double PI = 3.14;
    
  • 常量名一般使用大写字符。

变量的命名规范
  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 除了第一个单词外,后面的单词首字母大写
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线 MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

(可参考我的另一篇博客:java命名规范)

运算符

  • Java语言支持如下运算符:优先级:最好使用()

    • 算术运算符:+,-,*,/,%(余),++(自增),–(自减);

    • 赋值运算符:=;

    • 关系运算符:> , < , >= , <= , == , != , instanceof;

      计算结果一定是true or false;以后会和if一起用

    • 逻辑运算符:&& (与), ||(或), !(非);

      计算结果一定是true or false

    • 位运算符:&,|,^,~,>>,<<,>>>;

    • 条件运算符:?,:;

    • 扩展赋值运算符:+=,-=,*=,/=;

    算术运算符

    ++(自增)

    a++:++在后时,先赋值,再自增;

    ++a:++在前时,先自增,再赋值;

    int a = 5;
    int b = a++;//a++加在后,先给b赋值,再自增;
    System.out.println(a);//a=6
    System.out.println(b);//b=5
    ================================================
    int c = ++a;//++a加在前,先自增,再赋值给c;
    System.out.println(a);//a=6;
    System.out.println(c);//c=6;
    
    

    –(自减)同理

  • 注意事项:

    • 算术运算符使用中,有一个为long或者double类型,其结果为long或者double类型,不然为int类型。
    • 很多运算java,会使用一些很多工具类来操作
    逻辑运算符
    • && (与):逻辑与运算,两个变量都为真,结果才为true
    • ||(或):逻辑或运算,两个变量有一个为真,结果才为true
    • !(非):如果是真,则变为假,如果是假则变为真
    int q = 10;
    int  w = 20;
    System.out.println(q<w && w>30);//(false),q<w正确,w>30错误,
    // 可解释为:q<w与w>30同时两条成立,结果为true,所以最后结果为"false"
    System.out.println(q<w || w>30);//(true),q<w正确,w>30错误,
    // 可以解释为:q<w或w>30其中一条成立,结果就为true,所以最后结果为"true"
    System.out.println(!(q<w));//(false),q<w正确。
    // 可以解释为:q应该不(非)小于w,但是实际上q<w,所以为”false"
    
    
    短路运算

    当前面为“false”时,后面的将不执行,只有“true”才会运行,这就叫短路运算。

    int z = 5;
    boolean x = (z<4)&&(z++<4);//由于(z<4)不成立为false,(z++<4)就不运行
    System.out.println(x);//(false)
    System.out.println(z);//(5)由于(z++<4)没有运算,所以z没有自增
    
    
    位运算符

    & (1):全部为1才为1,否者为0

    | (0):全部为0才为0,否者为1

    ^(同0):相同为0,否者为1

    ~(取反):取二进制相反的数

     A = 1100 0011
     B = 1001 0110
    ---------------
    A&B= 1000 0010
    A|B= 1101 0111
    A^B= 0101 0101
    ~B = 0110 1001
    
    

    "<<"二进制左位移=代表*2

    ">>"二进制右位移=代表/2

    扩展运算符

    +=,-=,*=,/=;()

    int a = 5, b = 10;
    a+=b;//a=a+b(15)
    a-=b;//a=a-b(-5)
    a*=b;//a=a*b(50)
    a/=b;//a=a/b(0.5)
    
    
    字符串连接符

    在“+”号前出现string类型时,他会把“+”后面的一操作数,转换成string类型,进行拼接。

     int a = 5, b = 20;
    System.out.println("yes"+a+b);//(yes520)
    System.out.println(a+b+"yes");//(25yes)
    System.out.println("yes"+(a+b));//(yes25)
    System.out.println(""+a+b+"yes");//(520yes)
    System.out.println(""+a+b+(a+b)+"yes");//(52025yes)
    
    
    条件运算符

    x? y:z //x值如果为true=y,如果为false=z;

    int score = 60;
    int xm = 70;
    int xg = 49;
    int xh = 60;
    System.out.println("xm:"+(xm>=score ?"及格":"不及格"));//(xm:及格)
    System.out.println("xg:"+(xg>=score ?"及格":"不及格"));//(xg:及格)
    System.out.println("xh:"+(xh>=score ?"及格":"不及格"));//(xh:及格)
    
    

    后期可以使用”if"做

    注意:byte类型再相加的时候,会自动转换成int类型

  • 包机制

“包的本质就是文件夹”

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。

  • 包语句的语法格式为:

    package pkg1[.pkg2[.pkg3...]]//定义包
    
    
  • 一般利用公司域名倒置作为包名;

  • 为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"完成此功能

import package1[.package2...].(classname|*);//导入包,*导入这个包下所以的类

尽量不要把包名字重复

JavaDoc

  • javadoc命令是用来生成自己API文档的

  • 参数信息

    • @author 作者名
    • @version 版本号
    • @since 指明需要最早使用的jdk版本
    • @param 参数名
    • @return 返回值情况
    • @throws 异常抛出情况
    /**
     * @author xxx
     * @version 1.0
     * @since 1.8
     */
    
    

    生产文档:javadic+参数+java文件

    javadoc -encoding UTF-8 -charset UTF-8 Doc.java

如何在IDEA中生成一个Javadoc文档

  1. 首先新建一个文件夹,用于存放要生成的Javadoc文档。
  2. 接下来点击IntelliJ IDEA顶部的Tools菜单,选择Generate JavaDoc选项,如下图所示在这里插入图片描述
  3. 然后在弹出的界面中我们点击Output directory输入框后面的按钮,如下图所示
    image-20210202211856819
  4. 在弹出的选择文件夹界面中选择刚才新建的文件夹
  5. 接下来在底部的Locale输入框配置语言和编码集,如下图所示,语言用zh_CN,代表中文

-encoding utf-8 -charset utf-8

image-20210202212015000

  1. 然后点击确定以后我们就等待IntelliJ IDEA给我们生成JavaDoc文档即可,等到输出栏出现如下图所示的提示代表生成完毕

7.接下来我们打开JavaDoc文件夹,找到index.html文件,点击就能看到API文档。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Summer524!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值