一个前端的java后端之旅(一) 从Package入手Java

做为一个想要进阶java后端但又恐惧java的前端工程师,你只是缺乏适合本身的教程,你们都是编程的人,彻底不必从int,String,Boolean,if,else,witch,for,while....这种东西学起了。那就让我开始,先行寻找java后端之旅的路线,而后跟你们一块儿快速进击java后端吧。javascript

首先学会建立Java项目

了解Java包以前先看看如何使用它。使用IDEA工具建立一个普通的java项目。html

这里对于IDEA工具的下载安装以及jdk的下载就不介绍了(若是真的不会安装jdk,点击查看详细安装步骤),可是你必须保证已经安装了IDEA工具以及jdk才能继续看下去:前端

step1 点击 Create New Project 建立一个工程 vue

step2 这里必须保证的一点就是蓝色框中jdk必须选中一个,若是没有,就点击右边的New将你下载的jdk添加进来,其他选框均不用勾选,点击next java

step3 出现选择模板的界面,默认未勾选,为了方即可以勾选并选择Java Hello Word模板,点击next react

step4 第一行输入项目名称,第二行选择一下项目存储路径,点击Finish完成项目建立 c++

step5 进入Main.java后右键菜单里点击Run 'Main'就能够体验本身的第一个java程序了 web

Java中的文件管理

做为一个职业的前端选手,你可能常常游走于vue/react项目,对项目src目录有着深入的看法,本身也会设计符合本身风格的目录存放相应的代码,那么在java中也是同样的,咱们能够在src中建立不一样的目录来管理不一样的Java代码。算法

来个简单的例子: 当你准备建立Directory(WebStorm里是Directory)的时候,你忽然发现,WDMY 居然没有这个选项,可是有个你在WebStorm里没见过的东西,那就是Package,没错,Java就是经过这个叫Package的东西来管理文件目录的。spring

好了,那就建立一个learning.basePackage(包)吧,而后你会发现src目录下多了个learning.base的包。

你能够点击右上角红色框中的齿轮按钮,将Compact Middle Packages选项的勾去掉,就能够看到learning.base已经变成了一个learning/base的级联目录。

此时就能够清楚的解释java中的包究竟是什么东西,他就是用来管理和组织java项目文件的一种目录。

包和文件夹到底有什么区别?

当了解到包的时候,咱们知道包的本质就是个文件夹或者说是目录,可是你(实际上是我)可能会有些许困惑,为何java把目录叫作包,为何还须要包这个概念,咱们写前端也有目录啊,也没见人家把目录抽象成什么包的概念。

那么既然叫作包,它确定不是一种普通目录,那么它跟普通目录到底有什么区别呢?

在寻找答案的时候,发现网上的回答都说没有区别,但我不能放弃啊,没有区别那凭什么会有包的概念而不是叫目录。

我的的理解是这样的:java的包是一种接受java规范的目录结构。它与普通的目录却别就在于它受制于某种规定,而普通目录你能够随意建立。

这种规范包含:

  1. 命名规范:包名只能是字符串、数字、下划线、$且不能以数字开头,通常是小写英文字(大写不报错)。

    • 这个规则很是相似变量的命名,其实这也是有缘由的。你能够在learning.base下新建一个Hello的 Java Class
    • package learning.base;
      
        public class Hello {
        
        }
      复制代码
    • 你能够看到package learning.base包名声明在java代码中,若是包名中出现什么加减乘除符号,是否是不合理,因此这一规范很是重要。
  2. 包结构的组织规范:包的结构通常以域名倒写来组织,包名之间以点号.来链接。好比我有个域名叫作geekrole.com我就能够这样组织包名com.geekrole.user

    • 刚开始你可能会有疑问为何不正着写,但若是你把包拆成目录结构com/geekrole/user,你就知道了,目录的命名是个总分结构的,因此包名也是。

包的用途

咱们已经知道,java中的包是来管理和组织java项目文件的一种目录,因此咱们能够将某一类代码封装到同一个包中,java提供的不少标准库文件也是经过包的形式进行组织,只不过它是全局的,并以java开头,好比java.lang,java.util等。

打破畏惧心理

此时你(实际上是我)可能会有种面对未知的忧虑和惧怕,我怎么知道它须要有些什么包,它的包有些什么方法,每次调用导入包怎么导入...

好吧,说实话,这种担忧应该是多余的,Idea能够帮咱们自动导入一些用到的包, 你能够试试下面的代码,当你写到Scanner回车后会自动导入Scanner包。若是是自定义包,idea也会有相应提示,以帮助咱们自动导入。

package learning.base;

import java.util.Scanner;

public class Hello {
    public static void main(String[] args) {
        // 输入两个数字比较大小,输出大数
        Scanner sc = new Scanner(System.in);
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        int res = Math.max(num1, num2);
        System.out.println(res);
    }
}
复制代码

解决了包导入的问题,那么如何知道有哪些包,这就是个积累的问题了,若是开发过程当中须要用到时间相关,那么就查一查时间相关的包,看看有哪些方法能够供咱们使用,一下是java9官方文档,能够找到你想要用的各类包(java9文档)

tips 能够注意一下包的声明方式与导入方式。package关键字用于声明包,import关键字用于导入包

什么是jar包和war包?

既然说到了包,那就不妨把jar包和war包也简单说明,避免后续它们给咱们编程带来未知的恐惧。

jar包是个啥玩意

你可能不了解jar包,但必定知道并用过zip压缩工具,好比2345好压,经过它能够把不少文件甚至文件夹打包到一块儿,方便传输给别人,同时它也拥有压缩算法,能够把文件体积变小。

jar包的本质就是java中的zip包,本质相同,但既然他是jar,就必定跟zip包有区别,jar与zip的区别是什么:jar文件不只用于压缩和发布,并且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用(此句来自百度)。

也就是说jar包能够进一步将咱们封装的各类类文件(可能经过包形式阻止起来的类)进一步作个打包文件,而且这个文件在使用的时候彻底不用解压缩,能够直接使用。除此以外还拥有一些zip包的优点,好比压缩。

到此,jar包到底有什么优势本身也能够大体推断出一二了,若是实在强迫症,百度搜一搜,而后你会发现本身也能根据zip包和以上jar与zip的区别猜出来。

war包又是个啥玩意

说了jar包,怎么又有个war包,直白一点,war包就是把一个web应用打包起来的包,而且跟jar包相似,它也能够直接运行。

咱们能够这样理解,jar包是对各类工具的打包,war则是以整个网站,或者一个网站的一个模块的打包,它能够直接运行。

小结

虽然本文并无什么实质性的编程相关的东西,但它能够从另外一个角度来帮助一些没有java的基础的朋友快速对java有个大体的认识。

如下为闲谈 说到为何要写java相关的文章,就想起了做为一个计科专业的学生,居然只学过c/c++,都没认真玩过java,而后兴趣和机会让我接触了前端,但java始终是块心病啊。

可能java的内容真的有点多,一本正常点的java SE语法书也要四五百页,看起来真的像本字典。就说说我最近看的一本java书《写给大忙人的JavaSE9核心技术》,500多页也像字典同样,大忙人也没有空看字典啊。

在网上找了找能够快速学习的资料,可是没找到想要的,要么就是介绍int,Integer,String,Boolean, if, else, switch要么开始介绍一堆面向对象的特色,jdk、jre是什么。这种教程内容是很全,可不适合我快速学习,做为一个学过c系语言(c,c++,java,javascript都算)的人,一些基础语法,if,else,switch,while,do while,for都如出一辙啊,重复学习并无多大的必要。

因此想着那就本身开始挑着学吧,而后记录下来,也为一些前端朋友进阶java认真作点事,你们都是编程的,不少不用说的东西那就别说了,快速熟悉java,尽快过分到spring boot等框架,开始真正的后端编程才是重要的,而不是追求内容够多,多了学不完要他何用?

还有个缘由,报了慕课网7月老师的java全栈课,却没有java基础,因此基础这里得本身补一下了。

相关文章
相关标签/搜索