一转眼,又是一年过去了。我发现这一年的时间里,很多时候我一直都在原地踏步。新的技术没怎么学,用来用去还是旧的基础。今天刚好有时间就先写一篇基础:
1.什么是Java?2.Java语言的特点?
回答第一和第二问题:java是一种开发语言,
其核心特点是:跨平台,面向对象。
跨平台:Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。Java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。
JVM执行程序的过程 :I.加载。class文件 ,II.管理并分配内存 ,III.执行垃圾收集
面向对象:
封装、继承、多态
封装:封装就是隐藏。
1.其实现方式:修改属性的可见性(private)和添加get/set方法。
如:

private String name;
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}


继承:继承关系是传递的。

class Person1 {
       public String name = "xiaojunle";
       public int age = 24;
	   void said() {
              System.out.println("I do not know!");
       }
} 
class myfriend extends Person1 {

       void said() {
              System.out.println("I can!");
       }

	   public static void main(String args[]) {              myfriend myf = new myfriend();
              myf.name = "zhangsan";
              myf.age = 20;
              System.out.println("name=" + myf.name + "--" + "age=" + myf.age);
			  myf.said();
       }
}

多态 常见的就是:upcasting and downcasting (向上转型和向下转型)
upcasting:子类引用的对象转换为父类类型称为向上转型。
特点:不需要强制转型 如Father father = new Son();
动态绑定概念:子类对象当成父类对象,只能调用父类的成员,如果子类重写了父类的方法就根据这个引用指向调用子类重写的这个方法(这个方法就是覆盖override)。这个调用过程就称为“动态绑定”。

downcasting:父类引用的对象转换为子类类型称为向下转型。
特点:需要强制转型 如Son son = (Son)new Father();
在向下转型过程中,分为两种情况:
情况一:父类引用的对象如果引用的是指向的子类对象,那么在向下转型的过程中是安全的。也就是编译是不会出错误的。

情况二:如果父类引用的对象是父类本身,那么在向下转型的过程中是不安全的,编译不会出错,但是运行时会出现java.lang.ClassCastException错误。它可以使用instanceof来避免出错此类错误。

public class Girl {
         public void smile(){
                   System.out.println("girl smile()...");
         }
}class MMGirl extends Girl{
         @Override
         public void smile() {
                                     System.out.println("MMirl smile sounds sweet...");
         }
         public void c(){
                   System.out.println("MMirl c()...");
         }
} public static void main(String args[]) {
                   public static void main(String[] args) {
                   Girl g1=new MMGirl(); //向上转型
                   g1.smile();
                   MMGirl mmg=(MMGirl)g1;    //向下转型,编译和运行皆不会出错
                   mmg.smile();
                   mmg.c();
                   Girl g2=new Girl();
           //MMGirl mmg1=(MMGirl)g2; //不安全的向下转型,编译无错但会运行会出错
           //mmg1.smile();
           //mmg1.c();
                   if(g2 instanceof MMGirl){
                            MMGirl mmg1=(MMGirl)g2;
                            mmg1.smile();
                            mmg1.c();
                   }
         }


3.什么是jdk?
Java Development Kit 是针对Java开发人员的产品,是整个Java的核心。
包括:Java运行环境Jre、Java工具( javac/java/jdb等 )和Java基础类库( Java API,rt.jar等 )。

4.安装jdk?
Java 环境变量配置,linux,windows

5.Java的运行机制?
javac demo.java --在classpath设置的目录下找demo.java文件,并且编译demo.java文件
java demo.java --运行demo.java 中的main方法。
set classpath='...' --设置classpath路径