zoukankan      html  css  js  c++  java
  • Java02——基础

    本文章是本人根据视频和网上资料整理所写笔记,可能有不通顺或遗漏的地方,请尽量参考学习来源处的链接去进行学习。

    学习来源

    【狂神说Java】Java零基础学习视频通俗易懂:https://www.bilibili.com/video/BV12J41137hu

    菜鸟教程: https://www.runoob.com/

    阿里巴巴Java开发手册

    Javadoc---生成Javadoc文档 https://www.cnblogs.com/strive-19970713/p/11166441.html

    注释

    • 平时我们编写代码,在代码量比较少的时候可以看懂,但是项目结构一旦复杂起来,我们就需要用到注释

    • 注释并不会被执行,是给我们写代码的人看的

    • 书写注释是一个非常好的习惯

    • Java中的注释有三种:

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

    注释规约(参考阿里巴巴Java开发手册1.3):

    下面列举几个我们常用且强制的

    • 类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用

    • 所有的抽象方法 ( 包括接口中的方法 ) 必须要用 Javadoc注释、除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能

    • 所有的类都必须添加创建者和创建日期。

    • 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释 使用/ /注释,注意与代码对齐。

    • 所有的枚举类型字段必须要有注释,说明每个数据项的用途。

    标识符和关键字

    关键字:java中事先定义的,有特别意义的标识符,又被称为保留字

    关键字注意点:

    关键字不能用作变量名、方法名、类名、包名和参数

    image-20210303204538818

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

    标识符注意点:

    • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)或者下划线(_)开始
    • 首字符之后是字母(A-Z或者a-z),美元符($)或者下划线(_)或数字的任何字符组成
    • 不能使用关键字作为变量名或方法名
    • 标识符是大小写敏感
    • 合法标识符距离:age、$salary、_value
    • 非法标识符距离:123abc、-salary、#abc
    • 可以使用中文命名,但是一般不建议
    • 可以使用拼音,但是也不建议

    数据类型

    • 强类型语言(安全性搞)

      • 要求变量的使用严格符合规定,所有变量都必须先定义后才能使用
    • 弱类型语言

      • 比如JavaScript、vb、php
      • 例如:在vbscript中,可以将字符串 12 和整数 3 进行连接得到字符串 123,然后可以把它看成整数 123,而不需要显式转换
    • Java的数据类型分为两大类

      • 基本类型(八大基本数据类型)
        • 数值类型
          • 整数类型:byte 1字节(-128~127)、short 2字节、int 4字节、long 8字节
          • 浮点类型:float 4字节、double 8字节
          • 字符类型:char 2字节
        • boolean类型:占1位,值只有true和false两个
      • 引用类型
        • 接口
        • 数组
    • 整数拓展

      进制:

      • 二进制0b
      • 十进制
      • 八进制0
      • 十六进制0x
    • 浮点数拓展

      • float 大小优先、离散、含入误差、大约接近但不等于(如需比较,最好完全使用浮点数进行比较)

      • double

      • BigDecimal 数学工具类(银行业务一点要用这个

        float = 0.1f;//0.1
        double = 1.0/10;//0.1
        System.out.println(f==d);//false
        
        float d1 = 1212121213123123f;
        float d2 = d1 + 1;
        System.out.println(f==d);//true
        
    • 字符拓展

      • char

        • 所有的字符本质还是数字
        • 编码 默认Unicode(A=65 a=97) 2字节
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);//a
        System.out.println((int)c1);//强制转换 97
        System.out.println(c2);//中
        System.out.println((int)c2);//强制转换 20013
        char c3 = 'u0061';
        System.out.println(c3);//a
        
      • 转移字符

        • 制表符
        • 换行
        • ...
    • 布尔值拓展

      boolean flag = true;
      if(flag == true){} 相当于 if(flag) //Less is More! 代码要精简 写熟练前一种模式之后就要开始学会精简代码
      

    类型转换

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

      低到高
      byte,short,char->int->long->float->double
      
    • 运算中,不同类型的数据先转化为同一类型,然后再进行运算

    • 强制类型转换

    • 自动类型转换

    注意点:

    1. 不能对布尔值进行转换
    2. 不能把对象类型转换成不想干的类型
    3. 在把高容量转换成低容量的时候,强制转换,转换的时候可能存在内存溢出,或者精度问题
    public static void main(String[] args){
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;//-1474836480,计算的时候溢出了
        long total2 = money*years;//默认是int,转换之前已经存在问题
        long total3 = money*((long)years);//先吧一个数转换成long
        System.out.println(total3);
    }
    

    变量和常量

    变量

    • 变量是什么:急速可以变化的量!

    • Java是一种强类型语言,每个变量都必须声明其类型

    • Java变量是程序中最基本的存储单元,其要素包含变量名,变量类型和作用

      //数据类型 变量名 = 值;可以使用都好隔开来声明多个同类型变量
      type varName [=value] [{,varName[=value]}];
      
    • 注意事项:

      • 每个变量都有类型,类型可以是基本类型,也可以说引用类型
      • 变量名必须是合法的标识符
      • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束

    常量

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

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

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

    命名规范

    简而言之,参考阿里云Java规范

    • 所有变量、方法、类型:见名知意
    • 类成员变量:首字母小写+驼峰原则
    • 常量:大写字母+下划线:MAX_VALUE
    • 类名:首字母大写+驼峰原则
    • 方法名:首字母小写+驼峰原则

    运算符

    如图:

    image-20210313165252521

    运算操作都是往高类型转

    自动升为混合运算类型中最高类型

    比如:long a = 12345L; int b = 2;
    a+b后的结果是long类型
    

    短路运算

    组合逻辑运算,如果前面结果就为false,那么后面就不会进行了

    int a = 5;
    boolean b = (c<4)&&(c++<4);
    System.out.println(b);//结果为false
    System.out.println(a);//结果为5
    

    位运算

    A = 0011 1100
    B = 0000 1101
    A&B = 0000 1100 与操作:相同保持相同,不同为0
    A|B = 0011 1101 或操作:只要一个是1就为1,都是0才为0
    A^B = 0011 0001 异或操作:相同为0,不同为1
    ~B = 1111 0010 取反:顾名思义
    
    左移:<<  右移:>>  
    

    带字符串运算

    int a=10,b=20;
    System.out.println(""+a+b); //结果是1020
    System.out.println(a+b+"");//结果是30
    

    Math

    提供非常多的运算方法,一般在Java中涉及到复杂运算会使用这个工具类来操作!

    自增和自减

    重点(面试和笔试高频)

    b=a++;先给b赋值,再自增

    c=++a;先自增,再给c赋值

     public static void operator1(){
         //++ -- 自增,自减
         int a = 3;
         int b = a++; //先给b赋值,再自增
         //a++ => a = a + 1
    
        int c = ++a;//先自增,在给c赋值
        //++a => a+1
    
        System.out.println(a); // 5
        System.out.println(b); // 3
        System.out.println(c); // 5
    }
    

    另外补充:

    a+=b; // a = a + b
    a-=b; // a = a - b
    

    三元运算符

    必须掌握,开发常用

    x  ?  y : z
    
    如果x==true,则结果为y,否则结果为z
    

    包机制

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

    • 宝语句的语法格式为:

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

    • 如果我们在Java程序中明确导入某个包,需要用到“import”语句

    JavaDoc生成文档

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

      javadoc -encoding UTF-8 -charset UTF-8
      
    • 参数信息

      • @author 作者名
      • @version 版本号
      • @since 指名需要醉倒使用的jdk版本
      • @param 参数名
      • @return 返回值
      • @throws 异常抛出
  • 相关阅读:
    Java应用中的SQL依赖注入攻击和防范
    强大的 Jquery图表绘制插件 —— jqPlot
    jqPlot的Option配置对象详解
    也谈Java值传递到底传递了什么?
    Use Case 中 include 与 extend 的区别
    STAR UML 简述1
    在Hibernate中使用 HibernateTemplate的三种方法
    jquery ui tabs详解(中文)
    高性能网页开发规则
    如何绘制 UML 活动图(Activity Diagram)
  • 原文地址:https://www.cnblogs.com/jiaozhang/p/14529815.html
Copyright © 2011-2022 走看看