• Java学习笔记基础


    基础阶段

    Java基础01:注释

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

    Java的注释有三种:单行注释、多行注释、文档注释。

    文档注释和JavaDoc联合使用。

    Java基础02:标识符和关键字

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

    Untitled

    标识符注意点:

    • 所有标识符应该以字母,美元符或者下划线开始。
    • 首字符之后可以是字母、美元符、下划线或者数字的任何字符的组合。
    • 不能使用关键字作为变量名或者方法名。

    Java基础03:数据类型讲解

    强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。Java就是一种强类型语言。

    弱类型语言

    Java的数据类型分为两大类:基本类型(primitive type)和引用类型(reference type),基本类型有8种,整数类型4种,浮点类型2种,字符类型1种,boolean一种。

    Untitled

    long类型后面加一个L或者l

    float类型要在数字后面加个F

    字符串String不是关键字,是类,是引用数据类型。

    电脑的32位和64位的区别是什么?

    32位操作系统只能使用32位的操作系统,而64位操作系统不但能装32位操作系统也能装64位操作系统。内存中寻址能力,64位最多可以支持128G的内存,而32位的最多只有4G的内存。64位的支持软件更多。

    Java基础04:数据类型拓展以及面试题讲解

    整数拓展:进制表示方法 二进制0b 十进制 八进制0 十六进制0x

    浮点数拓展:float f = 0.1f和double f = 1.0/10不相等

    布尔值扩展:使用变量直接判断对错if(flag)

    //float  有限  离散  舍入误差  大约  接近但不等于
    //最好完全避免使用浮点数进行比较
    //BigDecimal类 数学工具类
    float f = 0.1f;//0.1
    double d = 1.0/10;//0.1
    system.out.println(f == d);
    
    float d1 = 23131312312312313f;
    float d1 = d1 + 1;
    system.out.println(d1 == d2);
    
    
    false
    true
    

    所有的字符本质还是数字。

    char涉及到一个编码问题,Unicode编码可以处理各种语言文字,占2个字节,65536,最早的excel有65536行。

    从U0000~UFFFF

    //强制类型转换
    char c3 = '\u0061';
    system.out.println(c3);
    //转义字符 
    //\t 制表符
    //\n 换行符
    system.out.println("Hello\nWo\trld");
    //思考题
    String sa = new String("hello world");
    String sb = new String("hello world");
    system.out.println(sa == sb);
    
    String sc = "hello world";
    String sd = "hello world";
    system.out.println(sc == sd);
    //对象 从内存分析
    
    a
    Hello
    Wo   rld
    false
    true
    

    包含很多转义字符。

    Java基础05:类型转换

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

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

    由低到高优先级:byte→short→int→long→float→double。

    优先级由高到低强制转换,由低到高自动转换。

    注意点:

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

    内存溢出:

    int i = 128;
    byte b = (byte)i;
    
    system.out.println(i);
    system.out.println(b);
    
    128
    -128
    

    精度问题:浮点数转为整数丢失小数点后的数。

    常见问题:

    public class Demo01 {
        public static void main(String[] args) {
            //操作比较大的数的时候,注意溢出问题。
            //JDK新特性,数字之间可以用下划线分隔
            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);
        }
    }
    
    20000000000
    

    Java基础06:变量、常量、作用域

    变量:

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

    注意事项:

    1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
    2. 变量名必须是合法的标识符。
    3. 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
    public class Demo08 {
        //属性:变量
    
        //代码块
        static{
    
        }
    
        //实例变量:从属于对象,如果不自行初始化,这个额类型的默认值 0 0.0 布尔值默认false 字符串为null
        String name;
        int age;
        char ah;
        //类变量 static
        static double salary = 2500;
    
        //main方法
        public static void main(String[] args) {
    
            //局部变量:必须声明和初始化值
            int i = 10;
            System.out.println(i);
    
            //变量类型 变量名字 = new Demo08();
            Demo08 demo08 = new Demo08();
            System.out.println(demo08.age);
            System.out.println(demo08.name);
            System.out.println((int)demo08.ah);
            //类变量 static
            System.out.println(salary);
    
        }
    
        //其他方法
        public void add(){
    
        }
    
    }
    

    常量:

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

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

    public class Demo09 {
        //修饰符,不存在先后顺序
        static final double PI = 3.1415;
    //    final static double PI = 3.1415;
    
        public static void main(String[] args) {
            System.out.println(PI);
        }
    }
    

    变量命名规范:

    Untitled

    Java基础07:基本运算符

    Untitled

    package operator;
    
    public class Demo01 {
        public static void main(String[] args) {
            //二元运算符
            int a = 10;
            int b = 20;
            int c = 25;
            int d = 25;
            System.out.println(a + b);
            System.out.println(a - b);
            System.out.println(a * b);
            System.out.println(a / (double)b);
        }
    }
    
    package operator;
    
    public class Demo02 {
        public static void main(String[] args) {
            long a  = 165135165156L;
            int b = 123;
            short c = 10;
            byte d = 8;
    
            System.out.println(a + b + c + d);//long
            System.out.println(b + c + d);//int
            System.out.println(c + d);//int
        }
    }
    
    package operator;
    
    public class Demo03 {
        public static void main(String[] args) {
            //关系运算符结果:正确,错误  布尔值
    
            int a = 10;
            int b = 20;
            System.out.println(a > b);
            System.out.println(a < b);
            System.out.println(a == b);
            System.out.println(a != b);
    
            int c = 21;
            System.out.println(c % a);//取余
    
        }
    }
    

    Java基础08:自增自减运算符、初识Math类

    package operator;
    
    public class Demo04 {
        public static void main(String[] args) {
            //++ -- 自增 自减 一元运算符
            //理解++a和a++ 的区别
    
            //幂运算 2^3 2*2*2 = 8 很多运算我们会使用运算类来操作
            double pow = Math.pow(2,3);
            System.out.println(pow);
    
            
        }
    }
    

    Java基础09:逻辑运算符、位运算符

    package operator;
    
    public class Demo05 {
        public static void main(String[] args) {
            // 与 或 非
            boolean a = true;
            boolean b = false;
    
            System.out.println(b&&a);
            System.out.println(b||a);
            System.out.println(!(b&&a));
    
            //短路运算(实验)
            int c = 5;
            boolean d = (c < 4)&&(c++ < 4);
            System.out.println(d);
            System.out.println(c);
    
        }
    }
    

    Java基础10:三元运算符及小结

    package operator;
    
    public class Demo07 {
        public static void main(String[] args) {
            int a = 10;
            int b = 20;
    
            a += b;//a = a + b;
            a -= b;//a = a - b;
    
            System.out.println(a);
    
            //字符串连接符  + ,String
            System.out.println(""+ a + b);
            System.out.println(a + b + "");
        }
    }
    
    package operator;
    
    public class Demo08 {
        public static void main(String[] args) {
            //x ? y : z
            //如果x为true,则结果为y,否则结果为z
    
            int score = 50;
            String type = score < 60 ? "不及格":"及格";
            System.out.println(type);
    
            //if
    
        }
    }
    

    Java基础11:包机制

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

    包语句的语法格式为:

    package pkg1[. pkg2[.pkg3...]];

    一般利用公司域名倒置作为包名;

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

    import package1[.pakage2...].(classname|);
    import a.b.

    Java基础12:JavaDoc

    package com.maynerd.operator;
    
    /**
     * @author 13781
     * @version 1.0
     * @since 1.8
     * */
    public class Doc {
    
        String name;
    
        /**
         * @param name
         * @return
         * @throws Exception
         */
        public String test (String name)throws Exception{
            return name;
        }
    
        /**
         * 
         * @param args
         */
        public static void main(String[] args) {
    
        }
    }
    

    之后通过命令行 javadoc 参数 Java文件。

  • 相关阅读:
    cron表达式详解(转载)
    Swagger 3.0使用教程(转载)
    springboot整合shiro-对密码进行MD5并加盐处理(十五)(转载)
    redis排序
    引用和指针的区别?
    测试策略
    主键、外键的作用,索引的优点与不足?
    您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
    UI测试测什么
    数据库,数据库管理系统,数据库系统三者的区别和练习?
  • 原文地址:https://www.cnblogs.com/Mingusu/p/15925057.html
Copyright © 2020-2023  润新知