• java基础学习


    java基础语法学习

    从零开始学习java的基础语法。

    本次使用的工具是IDEA。

    1、注释

    注释不会被编译器编译,用于代码的解释。

    // 这是一个单行注释
    
     /*
    这是多行注释
     */
    
    // 下面是文档注释
    /**
    * @Author 作者名称
    */
    

    彩蛋

    百度搜索“有趣的代码注释”,可以查看到众多有趣的注释。如:

    /***
     *      ┌─┐       ┌─┐
     *   ┌──┘ ┴───────┘ ┴──┐
     *   │                 │
     *   │       ───       │
     *   │  ─┬┘       └┬─  │
     *   │                 │
     *   │       ─┴─       │
     *   │                 │
     *   └───┐         ┌───┘
     *       │         │
     *       │         │
     *       │         │
     *       │         └──────────────┐
     *       │                        │
     *       │                        ├─┐
     *       │                        ┌─┘
     *       │                        │
     *       └─┐  ┐  ┌───────┬──┐  ┌──┘
     *         │ ─┤ ─┤       │ ─┤ ─┤
     *         └──┴──┘       └──┴──┘
     *                神兽保佑
     *               代码无BUG!
     */
    

    2、标识符

    标识符相当于名字,java中所有组成部分都需要名字,类名、变量名以及方法名都是标识符。

    关键字:指在java中已经被定义的单词。

    标识符注意事项

    3、数据类型

    所有变量必须定义类型后才能使用。

    int a = 10;            // 定义变量a的类型为int类型
    System.out.println(a); // 输出结果为10
    
    b = 10;                // b未定义类型,直接报错
    

    (1)基本类型和引用类型

    java分类两大类型:基本类型(八大基本类型)和引用类型

    // 八大基本数据类型
    
    // 整数型
    byte  num1 = 1;      // byte类型占1字节
    short num2 = 54;     // shrot类型占2字节
    int   num3 = 456;    // int类型占4字节
    long  num4 = 44868L; // long类型占8字节,使用(L)来标记为Long类型
    
    // 小数型:浮点型
    float  num5 = 1.5465F; // 占4字节,使用(F)标记表示为float类型
    double num6 = 1.235465; // 占8字节
    
    // 字符型
    char user = 'A'; // 2字节,只能赋值一文字字或一个字母,要使用单引号
            
    // 布尔类型
    boolean flag = true; // 只有两个结果,对(true)或错(false)
    
    // 引用类型
    
    // 类(class) 
    // 接口(interface)
    // 数组(array)
    

    (2)字节解释

    位(bit):是计算机内部数据存储的最小单位,00001010是一个八位的二进制数
    字节(byte):是计算机中数据处理的基本单位,1字节(byte)等于8位(bit)。
        
     1byte = 8bit
     1bit表示1位
     1byte表示1字节
        
    
        
    字符:是指计算机总使用的字母、数字、文字和符号
    

    (3)浮点型拓展

    // float 是有限的 取值取的是大约值 接近但不等于
    // 小数比较最好是使用double比较
    float  f = 3.14f;
    double d = 3.14;
    System.out.println(f == d); // 结果为false,因为float取的是大约值,接近但不等于
    
    float f1 = 13456789564f;
    float f2 = f1 +1;
    System.out.println(f1 == f2);  // 结果为true,float取的是大约的值
    
    double d1 = 113456789564.1;
    double d2 = d1 + 1;
    System.out.println(d1 == d2);  // 结果为false
    

    (4)char字符拓展

    // 所有的字符本质还是数字
    // 编码 Unicode 表:(97 = a 65 = A) 2字节
    
    char c = 'a';
    int  i = (int)c;
    System.out.println(i); // 结果:97
    
    char c1 = 'u0061';     // u0061 为 unicode表代码
    System.out.println(c1); // 结果:a
    

    boolean布尔值拓展

    boolean flag = true;
    // if括号内只有一个值时,自动判断
    if(flag == true) {}  // 新手用法
    if(flag) {}          //老手用法,代码简洁易读  
    

    (5)类型转换

    高类型转低类型,需要强制转换
    低类型转高类型,不用强制转换
    布尔值不能被转换

    //==============================================================
    // 类型 低 ---------------> 高
    // byte,short,char --> int --> Long --> float --> double
    //==============================================================
    
    byte b = 5;
    int  i = 8;
    byte b1 = (byte)i;  // 从int-->byte,高类型到低类型,需要进行强制转换
    int  i1 = b;         // 从byte-->int,低类型到高类型,不需要转换,直接赋值没问题
    
    char c = 'a';
    int  i2 = c;
    int  i2 = 98;
    char c1 = (char)i4;
    System.out.println(i2); // 字母“a”转换成int类型,数值为97;
    System.out.println(c1); // int类型为98的变量,转换为char类型是b
    

    (6)溢出问题

    // int类型是4字节(byte),4byte = 32bit,
    // 2^32 = 4294967296全部范围,分为负数和正数:-2147483648-2147483647
    // int类型超出这个范围-2147483648-2147483647,表示溢出。
    int num1 = 10_0000_0000;  // JDK7就有的特性,数字之间可以用下划线分割
    int year = 20;
    long sun = ((long)num1)*year;  // 先强制转换在计算,就能解决溢出问题
    System.out.println(num1*year); // 溢出就会报错
    System.out.println(sun);   
    
    // 标记为long类型,一般用大写(L),因为小写(l)与数字1相似。
    

    4、变量

    (1)变量的作用域

    局部变量:指在方法内声明的变量。(一般都必须初始化值)

    是在方法中声明,并且只能方法中使用。

    public class Demo2 {
       // 类变量(使用static标记的变量)
       // 与类一起出来,一起消失,
       // 使用类变量在方法中可以不用新建对象,直接调用即可
        static double dou = 4585;
    
        // 实例变量:从属与对象,如果不进行初始化,这个数据类型默认是 0或0.0
        // 布尔值默认是false
        // 出了基本类型,其他的都默认为 null
        String name;
        int age;
    
        public static void main(String[] args) {
            int a = 1; // 局部变量,必须声明和初始化
    
            // 使用声明的实例变量
            Demo2 demo2 = new Demo2(); // 新建Demo2对象
            demo2.age = 18;
            System.out.println(demo2.name);
            System.out.println(demo2.age);
    
            System.out.println(dou); // 不用新建对象,直接使用类变量
        }
    }
    
    

    (2)常变量

    常量可以理解为特色的变量,初始化后不能再改变值。

    常量名一般使用大写字符。

    // 关键字:static(静态的)、final(常量)
    // 关键词不区分先后
    
    staic final double Pi = 3.14; // 该静态常量,可以在方法中直接调用
    

    (3)变量的命名规范

    1、见名知意,使用英文命名。

    2、成员变量:使用首字母小写和驼峰原则(第一个单词以外,后面的单词首字母大写),如:lastName,createDate

    3、常量:大写字母和下划线:MAX_VALUE

    4、类名:首字母大写和驼峰原则,如:Man,ForntUserSave

    5、方法名:首字母小写和驼峰原则

    5、运算符

    (1)自增(++)、自减(--)

    // ++ -- 自增  自减 一元运算符(只使用到一个数值)
    int a = 3;
    
    int b = a++; // 变量a先赋值给b后,在自增  b值结果为3
    // 相当于
    // int b = a;
    // int a = a + 1;
    
    int c = ++a; // 变量a先加1后,在赋值给C,  c值结果为5
    // 相当于
    // int a = a + 1;
    // int b = a;
    

    (2)运算拓展

    // 幂运算 2^3 很多运算 我们都会使用一些工具类操作
    double pow = Math.pow(2,3);
    System.out.println(pow);
    

    (3)逻辑运算符

    // 与 或 非
    boolean a = true;
    boolean b= false;
    
    System.out.println(a && b);     // 与(&&)运算,当两个都为真才为真,否则为假
    System.out.println(a || b);     // 或(||)运算,只要有一个为真,则为真
    System.out.println(!(a && b));  // 非(!)运算,取反
    
    // 短路运算
    // 使用&&时第一个为假,则后面就不会执行了
    int c = 3;
    boolean d = (c > 4)&&(++c < 2);
    System.out.println(d);
    System.out.println(c);   // 结果d的值为3,因为(c>4)为假,后面就不执行了
    
    // 使用||时第一个为真,则后面就不会执行了
    boolean f = (c > 2)||(++c < 10);
    System.out.println(f);
    System.out.println(c); // 结果为3
    
    boolean g = (++c > 1)||(c < 10); // 测试在运算时,可以使用自增
    System.out.println(c);           // 结果为4
    

    (4)位运算

    /*
    A = 1001 0001  // 八个数字
    B = 0001 1101  // 八位数字
    
    // A低第一个数字对应B第一个数字,A的第二个数字对应B的第二个数字.....
    A&B = 0001 0001   // 对应的数字都为1(即为true)时,得到1,否则得到0
    A|B = 1001 1101   //对应数字只要有一个为1(true)时,得到1,否则得到0
    A^B = 1001 1101   // 对应连个都为1时得到1,两个都为0是得到0,一个为1一个为0时,得到1
    ~B = 1110 0010    // 取反
    
    2*8 = 16 2*2*2*2
    << *2
    >> /2
     */
    /*
    0000 0001  1
    0000 0010  2
    0000 0011  3
     */
    System.out.println(1<<3); // 即1*2*2*2 = 8,所以结果为8
    

    (5)字符串拼接

    int a = 3;
    int b = 5;
    
    // 字符串连接符
    System.out.println("a" + a +b);  //当运算中有字符,则默认为字符类型,进行拼接,结果为:35a
    System.out.println(a + b + "a"); // 当字符是在后面时,先进行运算,在拼接,结果为:8a
    

    (6)三元运算符

    // 三元运算符 ?:
    // x?y:z  表示:如果x为真,则输出y,否则输出z
    
    int x = 3;
    int y = 4;
    int z = 5;
    int a = x>2?4:5;
    System.out.println(a); // 因为x>2为真,结果为4
    

    6、包(pachage)

    创建不同的包,避免同样类名的冲突,同一个名字的类名可以放到不同的包中,就不会冲突了。

    包名一般使用域名的倒置。

    使用定义的类,需要导入包。

    7、javaDoc

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

  • 相关阅读:
    31、[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreato机
    30、[源码]-AOP原理-注册AnnotationAwareAspectJAutoProxyCreavi
    29、[源码]-AOP原理-AnnotationAwareAspectJAutoProxyCreatovi
    magento 常用的函数
    magento性能优化的教程(非常详细)
    magento性能优化
    magento搜索属性值的设置方法
    Magento 的程序架构与流程
    Magento入门开发教程
    高级Magento模型 EAV
  • 原文地址:https://www.cnblogs.com/zhouyongyin/p/12660028.html
Copyright © 2020-2023  润新知