跟着狂神学Java——第二天

1、Java基础

  1. 注释

    /**
     * 测试类,用于测试java基础中的内容
     */
    public class MyTest {
        @Test
        public void CommentTest(){
            //输出语句,System.out是一个PrintStream对象,该对象有一个方法println可以将字符串打印到控制台
            System.out.println("Hello World!");
            /*
            初始化语句,定义一个整型变量
            赋初值为10
             */
            int a = 10;
        }
    }
    //java中一共有三种注释
    	// x     单行注释
    	/* x */  多行注释
        /** x */ 文档注释
    //注释的作用
            1.解释说明代码含义
            2.简单的调试
    
  2. 标识符

    #java中所有需要命名的地方都是标识符
    #1.命名规则
    	标识符的组成是字母、数字、下划线、$,且数字不能开头
    	不能使用关键字作为标识符来命名
    	java严格区分大小写,String跟string不同
    #2.命名规范
    	见名知意
    	包名:全小写,.来隔开
    	类名:首字母大写
    	变量和方法名:第一个单词全小写,其余单词首字母大写
    	常量:全大写,单词之间用下划线隔开
    
  3. 关键字

    跟着狂神学Java——第二天

    #关键字是java自用的标识符,有其特殊的含义
    
  4. 数据类型

    @Test
    public void TypeTest(){
    	//java是一门强类型语言,所有变量都必须先定义后使用,变量类型跟变量值要严格匹配
        int num = 10;
        System.out.prinln(num);
        //这就是一条错误的定义语句,String表示该变量str是一个字符串类型,而10是一个整型变量
        //String str = 10;
       	//这才是正确的String类型变量定义 
        String str = "Hello";
    }
    
    #java中一共有两大类型
    #1.基本类型
    	整型:byte、short、int、long
    	浮点型:float、double
    	布尔型:boolean
    	字符型:char
    #2.引用类型
    	字符串(本质是class类型):String
    	#注释:除了基本类型之外的数据类型都是引用类型,其他的后面再学,先学一个String字符串
    #3.整型
    	#用于存储整数,默认整数是int类型,long类型数值赋值时需要后缀L/l
    	byte 1个字节来存储 存储范围:-128~127
    	short 2个字节来存储 存储范围:-32768~32767
    	int 4个字节来存储 存储范围:-2^31到2^31-1
    	long 8个字节来存储 存储范围:-2^63到2^63-1
    	#注释:计算机最小单元是一个bit(二进制位),一个byte(字节)是8个bit
    #4.浮点型
    	#用于存储小数,默认小数是double类型,float类型数值赋值时需要后缀F/f
    	float 4个字节来存储
    	double 8个字节来存储
    

    跟着狂神学Java——第二天

    	#浮点型数据跟整型不同,存储格式是符号位+幂指数为+数值位,因此即便是4个字节的float存储范围也比8个字节的long要大
    #5.布尔型
    	#用于表示正确还是错误,只有两个值true和false,不能参与运算
    	boolean 1一个二进制位来存储
    #6.字符型
    	#用来存储单个字符,定义方式: char c = '张';
    	char 2个字节来存储
    	#注释:java采用的是Unicode编码,因此字符型的底层是16位无符号整数,存储范围:0 ~ 65535
    #7.自动类型提升
    	#byte < short < int < long < float < double
    	#char < int < long < float < double
    	#char、byte、short类型不需区分范围的大小
    	小类型数据可以直接赋值给大类型数据,例如:
    	int a = 10;
    	double b = a;
    	#上述代码就是合法的
    #8.强制类型转换
    	#若出现大类型数据赋值给小类型数据,必须进行强转,此时是基本类型,先不考虑类型转换异常的问题
    	double b = 20;
    	int a = (int)b;
    	#上述代码也是合法的
    	#必须通过 (想要转向的数据类型)+变量 这种方式才能将大类型数据赋值给小类型数据
    	#不过此时会有一些弊端,比如精度丢失、数据转换无意义等,例如
    	double a = 10.1;
    	int b = (int) a;
    	#此时b的值等于10,小数点后的数值直接被截取掉
    	int a = 300;
    	byte b = (byte) a;
    	#此时b的值等于44,300的二进制数值从后往前截取8位的结果就是44
    #9.运算中的类型提升
    	#小类型数据跟大类型数据运算会得到大类型数据
    	#byte、short、char运算例外,结果是int类型,因为不能确定他们的运算结果是否会超过本身数据类型的存储范围
    	#但是有两种特殊情况:
    	#情况1:
    	byte a = 10;
    	a+=10;
        byte b = a;
        #上述代码是合法的,+=不会改变变量的数据类型,因此a还是byte类型而没有提升为int类型,-=,*=等复合运算同理
        #情况2:
        byte a = 1;
        byte b = 2;
        byte c = 1 + 2;
        //byte d = a + b;
        #注释:第四行就是错误语句,因为当1+2时,Java能够确定此时运算的结果没有超出byte的范围,但是两个byte变量Java确定不了
    #10.字符串类型
    	#用来表示一串字符,定义方式: String str = "张三丰";
    	#String类型不是基本类型,因此他不能与基本类型进行计算,但是可以通过'+'来拼接基本数据类型称为新字符串
    	String a = "hello";
    	String b = "hello";
    	a==b;
    	String a = new String("hello");
    	String b = new String("hello");
    	a!=b
    	#注释:两个字符串常量是相等的,但是同一字符串常量创建的String类型的对象却不相等
    	#原因:字符串常量存储于常量池中,同一字符串只有一份;而String对象存储于堆区,每new一次就创建一个,他们的地址不同
    

    拓展1:可以去网上看看关羽进制的帖子,2进制,8进制,10进制,16进制的表示和互相转换。

    拓展2:浮点型数据,存在精度误差问题,此问题的原因是为了能够做到快速计算特意精心设计的,如果需要完全精确计算,例如货币,可以使用BigDecimal这个类去表示数据

  5. 变量

    #1.变量名
    	符合标识符命名规则和规范
    #2.变量类型
    	变量的定义:
    	int a = 10;
    	char c = 'm';
    	String str = "张三丰";
    	#每个变量的定义都会声明其数据类型,因此变量其实就是固定大小内存的别名,其大小就是由其数据类型决定
    #3.变量作用域
    	变量的作用域是他出生的大括号内,此时学到的变量都称为局部变量,还有实例变量,类变量,后面再说
    
  6. 常量

    #使用关键字final修饰的变量就是常量
    	final int A = 10;
    	final double PI = 3.14;
    	#常量一经赋值不能修改
    
  7. 运算符

    #表达式的具体含义与数学无异,就不再赘述
    #1.算数运算符
    	+	加
    	-	减
    	*	乘
    	/	除
    	%	模(取余)
    	#注意:java中的整型除法是整除,需要小数结果要强转为double再去算
    #2.赋值运算符
    	=	赋值
    #3.比较运算符
    	>	大于
    	<	小于
    	>=	大于等于
    	<=	小于等于
    	==	等于
    	!=	不等于
    	instanceof(暂时不用记住,混个眼熟)
    #4.位运算符(略)
    #5.逻辑运算符
    	&&	短路与(与就用这个)
    	||	短路或(或就用这个)
    	!	非
    	&	非短路与
    	|	非短路或
    	#短路与非短路的区别就是,一旦整体表达式成立,短路符号后面的子表达式就不再继续运算,而非短路符号后面的子表达式还要继续运算
    #6.条件表达式
    	exp ? a : b
    	#exp的结果如果为true,则执行a表达式,否则执行b表达式
    #7.复合运算符
    	+=
    	-+
    	*=
    	/=
    	%=
    	#这就是为了偷懒用的,例如:
    	int a = 10;
    	a+=10;
    	System.out.println(a);
    	#输出结果为20,a+=10 相当于 a = a + 10;
    #8.自增自减
    	++a
    	--a
    	a++
    	a--
    	#a++先让a+1再参与表达式运算,++a先让a参与表达式运算再给a+1,--同理
    
  8. 包机制

    #1.包的概念
    	包等同于文件夹
    #2.包的作用
    	包可以分别管理不同类别的类
    	非同包中类可以同名
    	#原因:与类的加载机制有关,在java中,类的全限定名(包名+类名)是类的唯一标识,因此可以创建不同包的同名类
    #3.包的使用
    	先创建package包
    	在包下创建class类
    
  9. JavaDoc

    #java相较于其他的高级语言多了一个文档注释
    #1.文档注释的作用
    	标注一个类、方法的属性
    #2.如何查看文档注释的结果
    	打开命令行窗口
    	输入javadoc xxx.java
    	
    	idea=>Tools=>Generate JavaDoc也可以生成
    #3.文档注释的参数
    	@author		作者
    	@version	版本
    	@since		最早可用的jdk版本
    	@param		形参
    	@return		返回值
    	@throws		异常
    
上一篇:安卓CameraX基于虹软人脸识别程序开发


下一篇:【安全测试】sqlmap安装方法