zoukankan      html  css  js  c++  java
  • 2_java基础

    Java的内存需要划分成为5个部分:

    1. 栈(Stack): 存放的都是方法中的局部变量。方法的运行一定要在栈当中运行

      局部变量: 方法的参数, 或者是方法 {} 内部的变量

      作用域: 一旦超出作用域,立刻从栈内存当中消失

    2. 堆(Heap): 凡是new出来的东西,都在堆当中

      堆内存里面的东西都有一个地址值: 16进制

      堆内存里面的数据,都有默认值, 规则:

      ​ 如果是整数 默认为 0

      ​ 如果是浮点数 默认为 0.0

      ​ 如果是字符 默认为 'u0000'

      ​ 如果是布尔 默认为 false

      ​ 如果是引用类型 默认为null

    3. 方法区(Method Area) : 存储.class相关信息,包含方法的信息

    4. 本地方法栈(Native Method Stack): 与操作系统相关。

    5. 寄存器 (Pc Register): 与CPU相关

    1. 关键字

    特点: 完全小写的字母 (在编译器中,一般有颜色 ( 但是有颜色不一定就是关键字))

    2. 标识符

    • 标识符: 是指在程序中,我们自己定义的内容。比如类的名字、方法的名字和变量的名字等,都是标识符
    • 命令规则: 硬性要求
      • 标识符可以包含 英文字母26个(区分大小写)、0-9数字、$、和 _ (下划线)
      • 标识符不能以数字开头
      • 标识符不能是关键字
    • 命名规范: 软件建议
      • 类名规范: 首字母大写,后面每个单词首字母大写 (大驼峰式)
      • 变量名规范:首字母小写, 后面每个单词首字母大写 (小驼峰式)
      • 方法名规范: 与变量名规范一样

    3. 注释

    • // 单选注释
    • /**/ 多行注释

    4. 常量

    常量: 在程序运行期间,固定不变的量

    常量的分类:

    1. 字符串常量: 凡是用双引号引起来的部分,都是字符串常量. 如: "abc" / "123"
    2. 整数常量: 直接写上的数字, 没有小数点。 如: 100 200 0 -20
    3. 浮点数常量: 直接写上的小数, 有小数点, 例如: 2.5 / -3.14 / -0.0
    4. 字符串常量: 凡是用单引号引起来的单个字符, 就叫做字符常量。 例如: 'A', 'b', '岩'
    5. 布尔常量: 只有两种取值: true(真), false(假)
    6. 空常量: null , 代表没有任何数据 (不能直接用来打印输出)

    5. 基本数据类型

    数据类型 关键字 内存占用 取值范围
    字节型 byte 1个字节 -127-127
    短整型 short 2个字节 -32768-32767
    整型 int (默认) 4个字节 -2^31 ~ 2^31-1
    长整型 long 8个字节 -2^63 ~ 2^63-1
    单数度浮点数 float 4个字节 1.4013E-45 ~ 3.4028E+38
    双精度浮点数 double (默认) 8个字节 4.9E-324 ~ 1.7977E+308
    字符型 char 2个字节 0-65535
    布尔类型 boolean 1个字节 true, false

    6. 三元运算

    格式: 条件 ?表达式A : 表达式B

    1. 方法的定义

    /*
    方法其实就是若干语句的功能的集合
    定义方法的完整格式:
    修饰符 返回值类型 方法名称(参数类型 参数名称 ....) {
        方法体
        return 返回值;    // 如果 返回值类型为void ,则 return 可以不用写,或者直接return就行,不要再写其他的了
    }  */
    public class DefindMethod {
        public static void main(String[] args) {
            int res = sum(5, 10);
            System.out.println(res);
    
            methodC(5, 20);
    
        }
    
        // 求两个数的和
        public static int sum(int a, int b) {
            int result = a + b;
    
            return result;
        }
    }
    

    重载方法

    /*
    方法的重载(OverLoad): 多个方法的名称一样,但是参数列表不一样
    好处: 只需要记住唯一一个方法名称, 就可以实现类似的多个功能
     */
    public class OverLoadMethod {
        public static void main(String[] args) {
    		Sum(10, 20, 30);
            Sum(10, 20, 30, 40);
        }
    
        public static void Sum(int a, int b) {
            int res = a + b;
        }
    
        public static void Sum(int a, int b, int c) {
            int res = a + b + c;
        }
    }
    

    2. 数组

    数组的概念: 是一种容器,可以同时存放多个数据值
    访问数组: 数组名称[索引]  // 从0开始
    
    数组的特点:
    1. 数组是一种引用数据类型
    2. 数组当中的多个数据,类型必须统一
    3. 数组的长度在程序运行期间不可改变
    
    数组的初始化: 在内存当中创建一个数组,并且向其中赋予一些默认值
    
    两种常见的初始化方式:
    1. 动态初始化 (指定长度)    
    2. 静态初始化 (指定内容)    ps: 没有直接指定长度,但是依然会自动推算得出长度
    
    动态初始化数组的格式:
    数据类型[] 数组名称 = new 数据类型[数组长度]
    
    静态初始化数组的格式:
    数据类型[] 数组名称 = new 数据类型[] {元素1, 元素2, ...};
    
    public class Demo01Array {
        public static void main(String[] args) {
            /*
            动态初始化数组
            */
            // 创建一个数组, 能存放300个int类型的数据
            int[] arrayA = new int[300];
            // 创建一个数组, 能存放5个字符串
            String[] arrayS = new String[5];
            
            /*静态初始化数组*/
            // 直接创建一个数组,里面装的全部都是int 类型的数据, 具体为: 1, 5, 20, 30
            int[] arrayI = new int[] { 1, 5, 20, 30 };
            // 使用省略格式,创建一个装有: "hello" "world" "java" 的数组
            String[] arrayS2 = { "hello", "world", "java" };
            System.out.println(arrayS2);   // 直接打印数组名称, 得到的是数组对应的 内存地址的哈希值   // [Ljava.lang.String;@1b6d3586
            System.out.println(arrayS2[0]);  // hello  访问数组的第一个元素
        }
    }
    

    求数组的长度: array.length

    public class TraverseAarray {
        public static void main(String[] args) {
            int[] arrayA = {1, 2, 5, 6, 9};
    		// 遍历数组
            for (int i=0; i<arrayA.length; i++) {
                System.out.println(arrayA[i]);
            }
        }
    }
    
  • 相关阅读:
    Unix下5种I/O模型
    UDP/TCP拾遗
    智能指针
    YUV的数据格式
    OpenCV中RGB和HSV转换的问题
    RGB、YUV和HSV颜色空间模型
    const成员函数和mutable关键字
    设计模式--观察者模式Observer(对象行为型)
    linux备忘簿
    ctags使用详解(转载)
  • 原文地址:https://www.cnblogs.com/nichengshishaonian/p/11965563.html
Copyright © 2011-2022 走看看