一些基础知识

关键字

被赋予了特定意义的单词称之为关键字,关键字不能用于标识符的定义了

标识符

类名,接口名,变量名,方法名等我们都可以称之为标识符。标识符不能是关键字,否则程序会报错。

标识符遵循驼峰式命名,类名,接口名为大驼峰式命名(列如:HelloWorld),而变量名,方法名一般为小驼峰式命名(getName)。

数据类型

计算机语言大致分为强类型语言和弱类型语言,java属于强类型。

数据类型为基本数据类型和引用数据类型

基本数据类型有4类8种:byte(1字节),char(2字节),short(2字节),int(4)字节,long(8字节),float(4字节),double(8字节),boolean(没有明确定义,依赖于jvm)。

引用数据类型:类,接口,数组等等。

位和字节

  • 位(b)是计算机中数据存储最小单位,字节(B)是数据处理的基本单位,1个字节等于8位。

  • 字节的单位有B,KB,MB,GB,TB,PB

    1KB=1024B=1M 1024M=1G

    1MB=1024KB

    1GM=1024MB

    1TB=1024GB

    1PB=1024TB

32位和64位的区别

主要是寻址能力,32位的寻址空间是2的32次方位,64位的寻址空间是2的64次方位

进制

  • 2进制

    0b 比如说0b10=2

  • 8进制

    0 比如说010=8

  • 10进制

    比如说10=10

  • 16进制

    0x 比如说0x10=16

浮点数拓展

 float f= (float) (1.0+0.6);
       double d=(double)(1.0+0.6);
        System.out.println(f);
        System.out.println(d);
        System.out.println(f==d);
/*这边的f==d输出的是false,只要是浮点数,在进行小数运算的时候会发生精度损失
所以在进行和钱有关的重要的数据进行计算的时候,我们要用BigDecimal
*/

字符和字节

字符本质上都是数字我们可以用强制转换成int

字符可以可以对照ascll码表转换成对应字节。

字节也可以转换成对应的字符。

基本类型的互相转换

低->高 自动类型转换

高->低 强制类型转换

强制类型转换可能会发生内存溢出导致精度的损失

布尔类型在java中不能进行转换!

转换时不可以转换成无关的类型!

变量

内存中的一小块存储单元,里面存放着经常会改变的数据。

数据类型 变量名=变量值(,变量名=变量值,。。。。);

常量

值在运行过程中不会发生改变的量。

final 数据类型 数据名=数据值(,变量名=变量值,。。。);

被常量修饰的变量可以在类中方法内,也可以在类中方法外

但是被static修饰只能在类中方法外了

变量分为局部变量和全局变量,局部变量必须赋初值,全局变量可以不用赋初值,系统会自动分配给它默认的值!

作用域

{}

作用域中的变量只能在作用域中生效,同一个作用域中,变量不可重名

Math类

与数学有关的工具类

Math.abs()

Math.pow()

............

>> <<

右移 左移

左移 *2

右移 /2

2*8=16

<=>2 * 2 * 2 * 2

2<<3

00000010 变成了

00010000

三元运算符

​ 语法:表达式?值1:值2;

包机制

包package要位于第一行,包上不可以有任何东西

如果不是java.lang包下的类,需要导包。

JavaDoc

javadoc -encoding UTF-8 -charset utf-8 文件名.java

这是对文档注释的

@author

@version

@since

@param

@return

@throws

也可用idea生成文档

在tools中找到generate doc

我再生成文档的时候老是报错,后来我把环境变量中的classpath删除了,然后我的包可能不小心建的有些乱,然后把包删了重新建,就能生成doc了。

Scanner

//Scanner的方法next()和nextLine()的区别前者有空格也会合并掉,后者可以有空格
int num=0;
int sum=0;
Scanner sc=new Scanner(System.in);
while(sc.hasNextInt()){
    num=sc.nextInt();
    sum+=num;
}
System.out.println(sum);
sc.close();
//============================================
 String num="";
 int sum=0;
 Scanner sc=new Scanner(System.in);
  while(!sc.hasNext("#")){
     num = sc.next();
  }    
 sc.close();

反编译

idea它支持反编译

将要反编译的字节码放入和java类一块的目录中即可

比如Project Structure ->D:\mad_speak\out看到类似这个路径把它找到,并找出相应的class字节码文件粘贴,和java类放一块,再在idea里打开即可。

方法重载

参数不同即个数不同或顺序不同或类型不同

但方法名要相同

可变参数

可变参数必须放在参数列表的最后面,否则会报错

可变参数可以理解它就是个数组

例如

 public static void main(String[] args) {
        can(5,1,2,3,7,9);
    }
    public static void can(int a,int...num){
        for(int n:num){
            System.out.println(n);
        }
        System.out.println("a="+a);
    }
//=======================================================================================
public static void main(String[] args) {
        can(5,1,2,3,7,9);
        can(5,new int[]{1,2,7,9});
    }
    public static void can(int a,int...num){
        for(int n:num){
            System.out.println(n);
        }
        System.out.println("a="+a);
    }
posted @ 2022-12-11 19:39  抚千窟看长安  阅读(159)  评论(0编辑  收藏  举报