从0开始学Java--- java入门

java入门

Java帝国的诞生


C&C++

1972年C诞生

  • 贴近硬件,运行极快,效率极高。
  • 操作系统,编译器,数据库,网络系统等。
  • 指针和内存管理

1982年C++诞生

  • 面向对象
  • 兼容C
  • 图形领域,游戏等等
反抗
  • 我们要建立一个新的语言:
    • 语法有点像C
    • 没有指针
    • 没有内存管理
    • 真正的可移植性,编写一次,到处运行
    • 每个操作系统上增加了一个抽象层JVM(Java虚拟机),实现了可移植性
    • 面向对象
    • 类型安全
    • 高质量的类库
java初生
  • 1995年的网页简单而粗糙,缺乏互动性
  • 图形界面的程序(Applet)
  • Bill Gates说:这是迄今为止设计的最好的语言!
  • Java 2 标准版(J2SE):去占领桌面
    • 失败,开发桌面应用的根本无法接受Java,Java做的界面非常丑陋
  • Java 2 移动版(J2ME):去占领手机
    • 不受待见,当时互联网还未兴起
  • Java 2 企业版(J2EE):去占领服务器
    • 大家发现Java简直就是为服务器而生的,而且特别适合一些团队开发一些复杂的大型项目
  • 大量的巨头加入
Java发展

他们基于Java开发了巨多的平台,系统,工具

  • 构建工具:Ant,Maven,Jekins
  • 应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic
    • weblogic凭借着集群功能,第一次展示了复杂应用的可扩展性和高可用性
  • 三高问题:高可用,高性能,高并发
    • 三高问题这个中间界的东西把程序员从事务管理、安全管理、权限管理等方面解放出来,让他们能够专注于业务去开发
  • Web开发:Struts,Spring,Hibernate,Mybatis
  • 开发工具:Eclipse,NetBean,intellij idea,Jbuilder
  • 2006:Hadoop(大数据领域)
  • 2008:Android(手机端)

hadoop

hadoop

  • 一个伟大的帝国诞生了!!!!!!

Java特性和优势


  • 简单性
    • 可以说是C语言的纯净版,没有头文件,没有指针运算,不需要去分配内存,语法基于C,学习起来不费力
  • 面向对象
    • 程序设计基础,重点放在对象以及对象之间的接口上,模拟人的思维去写程序
    • 万物皆对象
  • 可移植性
    • 跨平台性,可以通过JVM跨平台移植
    • Write Once, Run Anywhere
  • 高性能
    • 即时编译
  • 分布式
    • Java就是为网络分布式来设计的,可以处理很多Tcp/Ip协议上的东西
    • 可以通过网络调用方法
  • 动态性
    • 本身不具有动态性,但反射机制让它具有动态性
  • 多线程
    • 可以实现更多的交互行为和实时行为
    • 比如:同时在听音乐的过程中打代码
  • 安全性
    • Java构成了一种防病毒放篡改的系统
  • 健壮性
    • Java几乎不会造成计算机的崩溃,在运行前会对内存进行一种检查,确认内存是合法的
    • 基于异常处理机制,哪怕出了问题也不会崩溃

那么问题来了,Java为什么能够成功?

用中国的老话说就是:天时地利人和!!

Java三大版本


  • Write Once, Run Anywhere
  • JavaSE:标准版(桌面程序,控制台开发…)
  • JavaME:嵌入式开发(手机,小家电…) 很少用
  • JavaEE:E企业级开发(web端,服务器开发)

JDK JRE JVM


  • JDK:Java Development Kit (JAVA 开发工具包)
    • 除了包含JRE以外还包含了开发java程序所必须的命令工具
    • JDK是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre
    • JDK = JRE+编译、运行等命令工具
  • JRE:Java Runtime Environment (JAVA 运行环境)
    • 除了包含JVM以外还包含了运行java程序所必须的环境
    • JRE = JVM+java系统类库(小零件)
  • JVM:JAVA Virtual Machine(JAVA 虚拟机)
    • 加载.class并运行.class

说明:

  1. 运行java程序的最小环境是 JRE

  2. 开发java程序的最小环境是 JDK

img

JAVA开发环境搭建


JDK8下载与安装
1.安装JDK
  • JDK11、12、13、14都已经出来了,但是***不稳定***,在企业中应用的并不多,***JDK8***是主流

  • 官网下载需要注册登录oracle账号 点击进入官网下载

    下载电脑对应的版本

  • 双击安装JDK

  • 记住安装的路径

  • 配置环境变量

    1. 我的电脑–>右键–>属性

    2. 高级系统设置–>环境变量

    3. 所有环境变量添加在系统变量

    4. 配置JAVAHOME 新建–>

      • 变量名:JAVA_HOME

      • 变量值:

        刚才你安装的路径

        E:\environment\java\jdk8

    5. 配置path变量 双击path–>

      1. 新建两个(

        %JAVA_HOME%

        代表引用JAVA_HOME这个环境变量的地址)

        • %JAVA_HOME%\bin
        • %JAVA_HOME%\jre\bin
  • 测试JDK是否安装成功

    1. 打开cmd 输入 java -version可以显示版本号说明已经安装成功了

      或者输入javajavac也可以测试(本质是用cmd运行了bin目录中的程序)

2.卸载JDK

1.删除java的安装目录

2.删除JAVA_HOME

3.删除path下关于java的目录

4.java -version

JDK目录介绍
名称作用
bin用于放***可执行的程序***,上面说的在cmd中输入的javajavac就在这个目录中
include由于java是C和C++编写的,启动时需要引用C语言的头文件,这里就存放这些***头文件***
jrejre就是***java运行环境***
lib全称为library,存放了java的一些***类库文件***,都是一些***.jar***文件
src.zip资源文件*,存放了一些***常用的类***
HelloWorld及简单语法规则
HelloWorld

1.随便新建文件夹,存放代码

2.新建一个java文件

  • 文件后缀名.java
  • Hello.java
  • 【注意点】系统可能没有显示文件后缀名,我们需要手动打开

3.编写代码

public class Hello{
	public static void main(String[] args){
		System.out.print("Hello,World!");
	}
}

4.编译javac java文件

5.运行class文件,java class文件

F:\2019菱川日常工作\09-其他\学习\07--JAVA\code>javac Hello.java
F:\2019菱川日常工作\09-其他\学习\07--JAVA\code>java Hello
Hello,World!
F:\2019菱川日常工作\09-其他\学习\07--JAVA\code>
可能遇到的问题
  • 每个单词的大小不能出现问题,java大小写敏感
  • 尽量使用英文;
  • 文件名 和 类名必须保持一致;
  • 符号必须使用英文符号
Notepad++安装和使用

JAVA程序运行机制

在计算机的高级编程类型分为两种:


编译型(compile)

需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件

  • 通俗来讲:就像一本书直接翻译成另一种语言
  • Java通过编译程序直接编译成.class字节码文件
  • 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行
  • 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件
  • 例子/主要语言:C / C++等

解释型

解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译

  • 通俗来讲:就像一个翻译官一句话一句话给你翻译,文章被修改时,就把修改的再翻译
  • 优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护
  • 缺点:每次运行的时候都要解释一遍,性能上不如编译型语言
  • 例子/主要语言:Java、Java Script、Python等
动态语言和静态语言

通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言 在我看来,动态语言和静态语言指的还是编译型和解释型

  1. 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。PythonRuby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。
  2. 静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#JAVA等。

对于动态语言与静态语言的区分,套用一句流行的话就是:Static typing when possible, dynamictyping when needed


两种类型的小总结
  1. 这两个词听起来都有翻译的意思,但是它们两个有区别:时机不同。就是什么时候去翻译
  2. java既有编译型的特点,也有解释型的特点
  3. 解释型的性能不如编译型语言,但电脑硬件方面在提升,现在买个电脑,内存都有16G,32G之类的,所以现在而言编译型也是很快的
程序运行机制

源程序(.java文件)通过编译器–>字节码(.class文件)–>类装载器–>字节码校验器–>解释器–>操作系统平台

程序运行机制

一个面试题——编译运行过程
  1. 编译期:.java源文件,经过编译,生成``.class`字节码文件

  2. 运行期:JVM加载.class并运行``.class`

    特点:跨平台、一次编程到处使用——Write Once, Use Anywhere

IDEA安装


什么是IDE(了解)

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。

IDEA介绍

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java等少数语言

传送门:

  1. IDEA官网
  2. IDEA下载界面

下载时发现IDEA有两个版本,一个是社区版,一个是旗舰版,旗舰版是付费的,贼贵。社区版就已经够用。但是有好的我干嘛不用对吧!

IEDA安装

img

  • 下载完成后,双击 ideaIU-2020.1.3.exe,打开安装软件;

PS: 确保电脑没有安装老版本软件,如有请卸载。

img

  • 安装目录选择;

img

  • 按自己电脑配置勾选:

img

  • 点击 next, 安心等待其安装完成:

img

  • 安装完成后,勾选 Run IntelliJ IDEA,点击 finish 运行软件:

img

  • 会先弹出一个注册框,勾选 Evaluate for free, 点击 Evaluate:

img

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值