JavaSE随笔总结

Dos常用命令

#盘符切换 如 E:
#查看当前目录下所有文件 dir
#切换目录:cd 带参数 /d + 盘目录如D:\文件夹名
#返回上一级: cd ..
#清理屏幕: cls (clear screen)
#退出: exit
#查看电脑ip: ipconfig
#打开应用:
#计算器程序: calc
#画图工具: mspaint
#notep记事本: notepad
#ping 命令
ping www.baidu.com

#操作文件命令
#创建文件夹: md 目录名
#移除文件夹: rd 目录名
#创建文件: cd> 文件名
#删除文件: del 文件名

一、JAVA简介:

1、java优势

  1. 简单性

  2. 面向对象

  3. 可移植性

  4. 高性能

  5. 分布式

  6. 动态性

  7. 多线程

  8. 安全性

  9. 健壮性

2、java配置开发环境

  1. 配置好JDK和JRE中的JAVA_HOME环境

  2. 程序运行机制:

    java源文件 --》 java编译器(先编译),变成了字节码(*.class文件),class文件才是被真正执行的文件。——》走到JVM虚拟机,放入类装载器总——》在进行字节码校验器(校验代码对不对) ——》解释器 (再解释,告诉操作系统要做什么。)——》 操作系统平台 。

     

     

    最好不要实用float数据类型进行比较,因为float类型数据是 舍入有误差,接近但不等于。

    银行业务数据比较实用: BigDecimal

    结论:所有的字符本质还是数字。

  3. 转义字符

    \t 制表符

    \n 换行

  4. boolean值扩展

    boolean flag=true;
    if(flag==true){}
    //两者是等价的
    if(flag){}

    Less is More!!!!!

二、JAVA基础

1、Java标识符和关键字

  1. 标识符

    • 以字母(a-z、A-Z)、数字(0-9)、下划线(_)、美元符($)开头。

    • 第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。

    • 用途:用来命名常量、变量、类和类的对象等。

    Java 区分大小写,不能以数字开头,也不能使用任何 Java 关键字作为标识符,不能赋予标识符任何标准的方法名。

     

  2. 关键字:它是编译器有特殊意义的固定单词;不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。

    用途:表示一种数据类型,或者表示程序的结构等。

    Java 语言目前定义了 51 个关键字:

    • 数据类型:boolean、int、long、short、byte、float、double、char、class、interface。

    • 流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。

    • 修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。

    • 动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。

    • 保留字:true、false、null、goto、const。

2、强制类型转换

底-------------------> 高

byte, short, char-->int-->long -->float,-->doule

//强制类型转换 (类型)变量名 高 到 低

int a= 128;
byte b=(byte)i;

//自动转换 低 到 高

int a= 128;
double b=i;

注意点:在转换的过程中可能存在内存溢出,或者精度问题

//例精度问题
System.out.println((int)23.3); //23
System.out.println((int)-45.88) //-45

JDK7新特性:数字之间可以用下划线分割。

如,int money=10_0000_0000;

//例内存溢出
int money=10_0000_0000;
int year=20;
int num=money*year; //内存溢出
long total=money*((long)year); //200亿

3、变量 or 常量

1、变量:

  1. 类变量 static

  2. 局部变量

  3. 实例变量

    public class Test{
       
       //类变量 加static
       static double salary=3000;
       
       //实例变量: 从属于对象; 如果不自动初始化,这个类型的默认值为 0 0.0;
       //布尔值:默认是false
       //除了基本类型,其余的默认值都为null;
       String name;
       int age;
       
      public static void mian(String []args){
           //局部变量: 必须声明和初始化值;
          int i=10;
          System.out.print(i);
         
          //若要使用实例变量,实例化该类的对象。
          Test test=new Test();
          System.out.println(test.name);
          System.out.println(test.age);
      }
    }

2、常量

定义:初始化后就不能再改变值。 不会变动的值!

使用关键字 final 声明!

final 变量名=值;

注:常量名一般要用大写字符

3、命名规范总结

  • 所有变量、方法、类名:见名知意

  • 类成员变量:首字母小写和驼峰命名原则: queryUserById

  • 局部变量:首字母小写和驼峰命名

  • 常量:大写字母和下划线: MIN_VALUES

  • 类名:首字母大写和驼峰命名 : User

  • 方法名:首字母小写和驼峰命名: queryUser

4、注意细节

//1、字符串细节问题
int a =20;
int b =10;
System.out.println(a+b+""); //30  
System.out.println(""+a+b); //2010
//如果""字符串在前面,那么后面的会进行拼接; 如果字符串""在后面,那么会先运算,在拼接。
//2、Scanner中的方法说明
Scanner scanner=new Scanner(System.in);
if(scanner.hasNext()){
//“空白”作为分隔符或者结束符。该方法返回输入“空白”之前所有的字符。
   String str=scanner.next();
//nextLine()方法返回输入“回车”之前所有的字符。可以获得空白
   Stirng str=scanner.nextLine();
}

5、方法重载、重写

  1. 方法的重载: 在一个类中相同方法名不同的参数列表。(个数、数据类型、参数列表顺序不同。)

  2. 方法的重写:需要有继承关系,子类重写父类的方法。

    • 方法名必须相同

    • 参数列表必须相同

    • 修饰符:范围可以扩大,但不能缩小

    • 抛出的异常:范围可以被缩小,但不能扩大

    子类的方法和父类必须一致,方法体不同。

6、Java内存理解

  1. 堆:

    • 存放new的对象和数组

    • 它可以被所有的线程共享,不会存放别的对象引用

  2. 栈:

    • 存放基本变量类型(包含这个基本类型的具体数值)

    • 存放引用变量的对象(会存放这个引用在堆里面的具体地址)

  3. 方法区:

    • 可以被所有线程共享

    • 包含了所有class和static变量

三、OOP

1、构造器:

和类同名,没有返回值。

注意:

  • 使用new关键字,本质就是在调用构造方法

  • 构造方法是用来初始化值

  • 定义了有参构造,无参构造就必须显示定义

2、封装、继承、多态

  1. 封装:

    • 提高程序的安全性,保护数据

    • 隐藏代码的实现细节

    • 统一接口

    • 提高系统的可维护性

  2. 继承

    • 使用关键字 extends

    • 子类继承了父类,就会拥有父类的全部方法

    • 在java中,所有的类,都默认直接或者间接继承了Object类

     

    super使用注意点:

    • super调用父类构造方法时,必须在构造方法中第一行

    • super必须只能出现在子类的方法或构造方法中

    • super和this不能同时调用构造方法

       

    this使用注意点:

    • 代表的对象不同:this代表本身调用这个对象,super代表父类对象的应用

    • 前提:this没有继承也可以使用,super只能继承条件下使用

    • 构造方法:this()调用本类构造,super()调用父类构造

  3. 多态

    • 多态是方法的多态,属性没有多态

    • 注意:父类和子类有联系, 类型转换异常(ClassCastException)

    • 存在条件:继承关系,方法需要重写,父类引用指向子类对象。

    static:

    • 修饰属性,方法,内部类

    • 静态代码块,类被初次加载的时候执行一次;

    • 静态导入包:可直接使用导入包类中的方法

    3、Exception

    1. 异常简介:

    • Throwable(超类): Exception 和 Error

    • Error:VirtulMachineError 和 AWTError

    • Exception:IOException 和 RuntimeException

    • IOException:EOFEException 和 FileNotFoundException

    • RuntimeException:

      • ArithmeticException:数学计算异常

      • NullPointerException:空指针异常

      • NegativeArraySizeException:负数组长度异常

      • ArrayOutOfBoundsException:数组索引越界异常

      • ClassNotFoundException:类文件未找到异常

      • ClassCastException:类型强制转换异常

      • SecurityException:违背安全原则异常等...

    1. 异常捕获

      • 关键字:try、catch、finally、throw、throws

      • throw 主动抛出异常,一般在方法中使用

        //例如在方法中抛出;
        throw new ArithmeticException();
      • throws: 假设在这个方法中,处理不了这个异常,在该方法上抛出异常;

        //方法名抛出
        public void test() throws ArithmeticException{}

     

     

 

 

 

posted @ 2020-10-03 01:19  青翎  阅读(166)  评论(0)    收藏  举报