手撕Java 一

鬼子可以撕得,Java为何撕不得?
学过点python,工作原因需要看点Java代码,于是我连蒙带猜地开始看了...

  • Struts2+Spring+Ibatis。这三个都是Java的web框架,我把Spring理解为django,Ibatis因为小巧理解为flask。——如果我猜的没错的话,那为什么这二货项目要用三个框架?
  • Jetty8是个web容器,Java的web代码需要一个容器才能跑起来,我听说过tomcat。

一直对静态语言抱有好感,下面开撕。

public/private/protected/friendly

  • Java map及四个关键字
    protected Map paramsMap
  1. Java的Map声明类型时需要用尖括号。
  2. public表示该数据成员,成员函数对所有用户开放。
  3. private表示私有,除了class自己,即便是子类也不可调用。
  4. protected,对于子类及和同一目录下的其他代码可以调用。
  5. 不写时,默认friendly
作用域 当前类 同一package 子孙类 其他package
public
protected ×
friendly × ×
private × × ×

三元表达式

java中的三元表达式和js一样。

或且非

|| && !,与js的写法也是一致的。

final

相同点:
final可以理解为golang的const,变量用final修饰后,一旦被初始化赋值,则不能再被更改。
不同点:
final还可以修饰类,表示这个类永远不会被继承。

static

static方法一般称作静态方法,静态方法就是没有this的方法。

关键词顺序

public static final Integer NET_TYPE = 2;

@Override

@Override装饰器的作用在于,可以保证正确重写父类的方法。
@Autowired,添加注释。

public class Test1 {
    public void hello(String content){
        System.out.println(content);
    }
}

class Test2 extends Test1{
    @Override
    public void hello(String content){
        System.out.println(content);
    }
}

interface

接口的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
类使用implements关键字实现接口。
Animal.java

interface Animal{
    public void eat();
}

Test1.java

public class Test1 implements Animal{
    public void eat(){
        System.out.println("I want eat");
    }

    public static void main(String args[]){
        Test1 t = new Test1();
        t.eat();
    }
}
  • 在Java中一切都是类
  • Java的语法并不复杂,而是现实工程确实需要考虑这些问题。

你可能感兴趣的:(手撕Java 一)