java入门

https://www.runoob.com/java/java-tutorial.html

#### java面向对象的三个特征

封装,继承,多态
封装:把描述一个对象的属性和行为封装成一个类,把具体的业务逻辑功能实现封装成一个方法,其次封装的意义还有效的保护属性通过访问修饰符私有化属性(成员变量),公有化方法。

  继承:实现代码的复用,所有的子类所共有的行为和属性抽取为一个父类,所有的子类继承该类可具备父类的属性和行为,继承具有单一性和传递性。

  多态:程序中定义的引用类型变量所指向的具体类型和调用的具体方法在程序编译阶段无法确定,而是在运行期才能确定该引用类型变量指向具体哪个对象而调用在哪个类中声明的方法。

  多态的表现形式有强制类型转换,向上造型等,多态可分为行为多态和对象多态。

  行为多态:同一个run( ){ }方法,不同的对象调用时会有不同的实现,猫调用时是跑,鱼调用时是游,鸟调用时是飞。

  对象多态:同一个对象,可以被造型为不同的类型,比如同一个人对象,可以被造型为儿子,父亲,员工等。

#####  JRE、JDK、JVM 之间的区别与联系

##### 字节流与字符流

https://www.cnblogs.com/DONGb/p/7844123.html

#### sync hro nized 同步的;同步化的

#### 检测性异常与未检测异常

基类为Throwable,
Error和Exception继承Throwable,
RuntimeException和IOException等继承Exception,
Error和RuntimeException及其子类成为未检查异常(unchecked),
其它异常成为已检查异常(checked)。
RuntimeException是运行时虚拟机的错误,不能被catch 

#### 虚函数、抽象函数、抽象类、接口

https://blog.csdn.net/trojanpizza/article/details/6556604

#### 疑问

#### java的序列化和反序列化。

https://www.jianshu.com/p/af2f0a4b03b5

#### java的enum类型。枚举放到类里可以当一个static变量使用

package cn.tx.demo;
class FreshJuice {
    enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
    FreshJuiceSize size;
}

public class HelloWorld {
    /* 第一个Java程序
     * 它将打印字符串 Hello World
     */
    public static void main(String []args) {
        FreshJuice juice = new FreshJuice();
        juice.size = FreshJuice.FreshJuiceSize.MEDIUM  ;
//        System.out.println("Hello World123123"); // 打印 Hello World
    }
}

  

#### java是编译型程序还是解释型语言

有人说Java是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就无法执行。 
也有人说Java是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释型的。
对于C和C++,它们经过一次编译之后,可以由操作系统直接执行,所以它们是编译型语言。
而Java不一样,它首先由编译器编译成.class(字节码)文件,然后在通过JVM从.class文件中读一行解释执行一行,所以它是解释型的语言。
也正是由于java对于多种不同的操作系统有不同的JVM,所以实现了真正意义上的跨平台。
(1)Java语言的编译-->解释-->运行过程 
(2)JVM到这里,大家应该也都明白了。

最后给出编译型语言和解释型语言的定义。 定义:编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!特点:编译型语言,执行速度快、效率高;依靠编译器、跨平台性差。 解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。 举例:编译型的语言包括:C、C++、Delphi、Pascal、Fortran 解释型的语言包括:Java、Basic、javascript

┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈

#### idea的快捷键。

fori
arrs.for(前边必须先定义String [] arr = {'11', '222'};)
cmd + alt + t 添加包围快的代码
alt + enter添加构造函数


ctrl + 0 覆写方法
cmd + n 一堆好东西。
alt + enter 自动填充前边的内容(Math.round(1.8);),实验的我的电脑不行。
alt + 回车解决红线。
ctrl + alt + b查找接口中的方法的实现的地方。(配合ctrl+alt+左,ctrl+alt+右)
ctrl + alt + l格式化代码

##### 下载地址和环境搭建。

https://www.jianshu.com/p/fe6b68295479

下载地址:

https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

原文地址:https://www.cnblogs.com/coding4/p/11330643.html