一路狂飙

从另外一个角度看java

经典的hello world

// Hello.java
public class Hello
{
    //程序的主函数入门
    public static void main(String args[]){
        //输出打印字符语句
        System.out.println("HelloWorld!");
    }
}

这里需要注意两点:

  1. 文件名和类名是一样的
  2. 文件名和类名是大小写敏感的

在命令行中执行

$ javac Hello.java
# 此时多出一个Hello.class文件
$ java Hello
HelloWorld! # 此处输出HelloWorld。

如果不是单文件工程的写法

// 定一个java类
public class Dog{
   int dogAge;
   
   public public Dog(){
   }
   public void getAge(int age){
       return dogAge;
   }
   public void setAge(){
       dogAge = age;
   }
}
  1. 一个源文件只能有一个public类
  2. 一个源文件可以有多个非pulic类
  3. 如果类定义在某个包中,那么package定义在源文件首行
  4. 如果源文件包含import语句,那么import应该放在package和类定义之间

java的继承

class Vehicle{}
class Speed{}
public class Van extends Vehicle{
	private Speed sp;
}
  1. java只支持单继承(继承基本类和抽象类)
  2. 但是可以用接口来实现多继承
public class Apple extends Fruit implements Fruit1, Fruit2{}

java包 package

package的作用是为了更好的组织类,防止命名冲突。

package的目录结构

类放在包中会有两种主要的结果:

  1. 包名成为类名的一部分,正如我们前面讨论的一样。
  2. 包名必须与相应的字节码所在的目录结构相吻合。

打包成可执行文件

MANIFEST-employee.MF

Manifest-Version: 1.0
Created-By: michael
Class-Path: .
Main-Class: employee/EmployeeTest

脚本打包成jar文件

$ tree employee
employee
├── Employee.class
├── Employee.java
├── EmployeeTest.class
└── EmployeeTest.java
$ jar cvfm eee.jar MANIFEST-employee.MF -C employee .

java框架选择

  1. 基础框架 Spring Boot, Netty
  2. 微服务框架 Spring Cloud
  3. 数据访问层 Hibernate, MyBatis

还有一些乱七八糟的东西

  • JSP,Javabean,Servlet
  • Tomcat
  • Struts
  • SpringMVC
  • JDBC
  • SpringBoot

jar && war

待补充

maven的加速器

增加到maven的setting.xml中,可能在~/.m2下面,也有可能在/etc/maven下面

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>