zoukankan      html  css  js  c++  java
  • java记录(2)

    仅个人记录

    11、java的sort方法?

    用法:Arrays.sort(array)/Collections.sort(list),改变排序规则,采用Arrays.sort(array,new Comparator(){重写其中的compare方法})的形式。

    12、java中操作string的函数方法

    int length()//返回长度
    char charAt(index)//返回固定位置的值
    char[] toCharArray()//字符串变为字符数组
    int indexOf(char)||lastIndexOf(char)//返回第一或最后出现字符的位置
    String toUpperCase()||toLowerCase()//大小写转换
    String[] split(regx||char)//根据给定的正则或字符来拆分字符串
    String substring(begin,[end])//从begin到end-1位置字符串的截取
    boolean contains(String)//判断是否包含指定内容
    String replace(oldChar,newChar)//替换字符

    13、JVM部分

    jvm虚拟内存可以分为以下几个部分:程序计数器、本地方法栈、虚拟机栈、方法区、虚拟机堆。
    程序计数器:jvm执行程序的流水线,存放一些跳转指令。
    本地方法栈:jvm调用操作系统方法所使用的栈。
    虚拟机栈:jvm执行java代码所使用的栈。
    方法区:存放了一些常量、静态变量、类信息等,class文件在内存中的存放 位置。
    虚拟机堆:jvm执行java代码所使用的堆。

    14、常量池

    常量池好处:避免频繁创建和销毁对象影响系统性能,对象实现共享,节约了内存空间和运行时间等。

    静态常量池:*.class文件中的常量池,其中包含字面量和符号引用量。
    字面量相当于常量,符号引用量包含类和接口的名称,字段名称、方法名称等。

    运行时常量池:在jvm装载完类之后,将class文件的常量池载入到内存中,保存在方法区。其中也会保存一些运行期间产生的常量。

    15、java中的null

    null在java中是一种特殊的值,表示空的引用,只在栈中存放,没有指向堆中的内存空间,注意NulllPointerException。

    16、this在类中方法的显隐式调用,静态方法没有this参数,在一个非静态方法中,this参数表示这个方法的隐式参数

    class ThisDemo2{
        public void method1(){
            this.method2();
        }
        public void method2(){
            System.out.println("HelloWorld2");
        }
    
    }
    
    public class ThisDemo{
        public void method0(){
            System.out.println("HelloWorld0");
            method1(); //非静态方法可以调用静态方法
        }
        public static void method1(){
            System.out.println("HelloWorld1");
            //method0(); 静态方法不能调用非静态方法
        }
    
        public static void main(String args[]){
            //this.method0();  报错
            new ThisDemo().method0();
            ThisDemo.method1();
            new ThisDemo2().method1();
        }
    }
    

    this代表的是当前对象的引用,statics(静态)方法是没有this的方法。
    静态成员(方法和变量)属于类本身,在类加载时就分配了内存,非静态成员属于类的对象,只有类的对象创建时才会分配内存,通过对象访问。

    17、final不可变

    对于类:final修饰的类不可以被继承
    对于方法:final修饰的方法不可以被重写,但可以继承
    对于引用:
    基本类型的引用:final修饰后为常量,不可修改
    对象类型的引用:final修饰后,该引用的地址不变,引用对象的内容可变
    类成员变量:final修饰的成员变量必须声明时赋值

    18、静态代码块、代码块(初始化块)、构造代码块的执行顺序

    顺序:静态代码块>代码块>构造代码块。

    19、javadoc

    根据注释等形成api文档。

    20、封装类与自动拆箱

    装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。
    Integer例子:

            Integer number = 22; //自动装箱  == Integer.valueOf(22) //当int值[-128,127]返回同一个对象
            int  number2 = number;//自动拆箱 == number.initValue()
    

    equals(Object o) 因为原equals方法中的参数类型是封装类型,所传入的参数类型(o)是原始数据类型,所以会自动对其装箱,反之,会对其进行拆箱。
    两种不同类型用 == 比较时,包装器类的需要拆箱, 当同种类型用==比较时,会自动拆箱或者装箱。

  • 相关阅读:
    electrica writeup
    C++ Tips and Tricks
    net-force.nl/steganography writeup
    3*n/2
    C++ 关键字浅谈
    MindMaster激活教程
    gitignre
    python pil 安装
    ubuntu 阿里云安全配置
    阿里云 centos 环境配置与 django 部署
  • 原文地址:https://www.cnblogs.com/Zxq-zn/p/13195287.html
Copyright © 2011-2022 走看看