JAVA基础知识

Java简介

作者:詹姆斯·高斯林(James Gosling)
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java是第一门完全面向对象编程的计算机语言

诞生背景

任职于Sun公司(Stanford University Network斯坦福网络公司)的詹姆斯·高斯林和麦克·舍林丹等人于1990年代初开发Java语言的雏形,最初被命名为Oak,Oak的目标是作为家用电器等小型系统的编程语言,用于电视机、电话、闹钟、烤面包机等家用电器的控制和通信。

由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。

随着1990年代互联网的发展,Sun公司发现Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。

伴随着互联网的迅猛发展,Java逐渐成为重要的网络编程语言。

三大平台版本

J2SE(Java 2 Platform Standard Edition)标准版
是为开发普通桌面和商务应用程序提供的解决方案
该技术体系是其他,可以完成一些桌面应用程序的开发两者的基础

J2ME(Java 2 Platform Micro Edition)小型版
是为开发电子消费产品和嵌入式设备提供的解决方案

J2EE(Java 2 Platform Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案
该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发

Java语言特点

Java语言具有简单性、面向对象、分布式、健壮性、安全性、跨平台性、可移植性、多线程与动态性等特点。Java语言可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统等 。Java 快速、安全、可靠。从笔记本电脑到数据中心,从游戏控制台到超级计算机,从手机到互联网,Java 无处不在!

简单性:
1.体现在开发工具可以为任意文本编辑器
2.代码量相对较少
3.运行平台简单
面向对象:
待完善
可移植性(跨平台):
Java代码运行与编写与平台无关,java内置虚拟机jvm,跟实际使用平台无关,只需要安装相应平台的虚拟机即可运行java代码
分布式:
一个系统将不同服务放在不同服务器上,减轻服务压力
多线程:
可以在同时运行多个不同功能的代码
动态性:
三大平台版本也是动态性的体现,java在安装时会将一些常用的工具直接安装使用,但是由于工具过多,所以只安装基本,在实际使用时,如果需要使用额外的工具可以动态的扩展安装
健壮性:
健全的代码检测机制,java代码运行首先需要先将我们编写代码进行编译,之后将编译后的代码交由虚拟机运行,在编译与代码运行的过程中,虚拟机会根据相应的检测机制对代码进行检测如果出现逻辑或运行错误会直接提示
安全性:
网络安全性:对象序列化
代码安全性:java代码源代码经过编译后生成字节码文件交由虚拟机运行

JVM JRE和JDK的关系

JDK:java开发工具包
JRE:java软件运行环境
JVM:java虚拟机

JVM
Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。

JRE
Java Runtime Environment包括Java虚拟机和Java程序所需的核心类库等。核心类库主要是java.lang包:包含了运行Java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JDK
Java Development Kit是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。所以安装了JDK,就无需再单独安装JRE了。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等

JDK包含JRE ,JRE包含JVM

简单而言:使用JDK开发完成的java程序,交给JRE去运行。(jvm保证跨平台)

Java程序执行流程

1.创建以.java结尾的源文件
2.对源文件进行编写
3.使用javac指令进行编译
4.编译成功后生成由虚拟机运行的.class二进制字节码文件
5.使用java指令进行执行

Jdk的安装

1.安装版
(1)使用默认配置路径一直点击下一步即可(没有注意项)
(2)安装至自定义位置(注意安装路径不能存在中文)在jdk12之前会分别安装jdk与jre需要选择两次路径。
2.解压版
(1)与安装版没有差别但就是解压位置注意

Jdk的卸载

1.使用安装包卸载再次执行安装包
2.使用程序卸载,控制面板删除java相关程序将文件夹删除

Java环境变量的配置

JAVA_HOME:JDK的安装路径(默认C:\Program Files\java\jdk1.8_221)

如果只进行基本的使用那么也可以不用配置
这个配置主要为了后期其他使用java的工具配置

ClASSPATH:编译好的class文件的路径
在jdk1.5以后不需要配置(如果配置错误jdk不能使用)

PATH:jdk的bin目录(默认%JAVA_HOME%/bin;)

Java相关运行指令存储在bin中,但是不会自动寻找指令
Path是为了使计算机在任意位置都可以找到知道指定的指令

Jdk安装环境配置指令验证方式:
安装结束使用java java -version指令进行验证
环境配置验证javac

右键计算机选择属性->选择高级系统设置

点击高级选项卡->环境变量

首先配置JAVA_HOME(一般是需要新建的)->点击新建

输入变量名与变量值(变量名固定为JAVA_HOME,变量值为jdk安装路径)

配置path(系统默认存在,需要修改,在系统变量中找到Path,点击编辑)

在最前面添加jdk指令变量(%JAVA_HOME%\bin;)固定

注意:最后一定要点击确定不要直接关闭配置

Linux指令
是windows系统提供的命令行操作页面,不区分大小写

盘符名: F: 切换盘符
Dir 查看当前位置文件
Cd 文件夹名 进入指定文件夹
对于可执行文件.exe可以直接输入文件名进行调用
Mkdir 文件夹名 创建文件夹

代码输出 Hello,wrold!

Java简介以及入门的更多相关文章

  1. 002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介

    002 01 Android 零基础入门 01 Java基础语法 01 Java初识 02 Java简介 学习Java的基础语法 Java是一门编程语言,学习的逻辑其实和现实世界的语言是一样的,需要了 ...

  2. Java入门 - 语言基础 - 01.Java简介

    原文地址:http://www.work100.net/training/java-intro.html 更多教程:光束云 - 免费课程 Java简介 序号 文内章节 视频 1 概述 2 主要特性 3 ...

  3. Akka 简介与入门

    Akka 简介与入门 http://www.thinksaas.cn/group/topic/344095/ 参考官网  http://akka.io/ 开源代码  https://github.co ...

  4. Java基础:Java简介及安装配置(1)

    Java简介 Java是Sun公司于1995年推出的高级编程语言,具有跨平台特性,编译后的程序能够运行在多种类型的操作系统平台上. 1.1 Java应用程序版本 Java的3个独立用于开发不同类型应用 ...

  5. Quartz入门例子简介 从入门到菜鸟(一)

    转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039   刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...

  6. Lombok简介及入门使用 (转载)

    Lombok简介及入门使用 lombok既是一个IDE插件,也是一个项目要依赖的jar包. Intellij idea开发的话需要安装Lombok plugin,同时设置 Setting -> ...

  7. Shiro简介、入门案例、web容器的集成

    目的: shiro简介 Shiro入门案例 Shiro与web容器的集成 shiro简介(中文官网:https://www.w3cschool.cn/shiro/andc1if0.html) 1.什么 ...

  8. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  9. python3-day1-python简介及入门

    python简介及入门 python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ...

随机推荐

  1. C#LeetCode刷题之#441-排列硬币(Arranging Coins)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3995 访问. 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状 ...

  2. Vue 页面导出成PDF文件

    注意事项 如果导出的页面中设计到图片或者其他文件跨域文件,需要后端服务配合 安装依赖 npm install html2Canvas --save npm install jspdf--save 封装 ...

  3. Vue 父子组件表单同步校验

    子组件代码 // 子组件 validateForm() { return new Promise((resolve, reject) => { this.$refs.contractBaseRe ...

  4. 清晰详细、可测量、可达到、目标导向、有时间限定,SMART目标定制原则

    设定目标的时候需要考虑的问题,可以对已经设定的目标进行完善 S 目标是清晰的,明确的 M 目标可以衡量的,可以用来评估的 A 目标是可以达到的,但是达到的过程有难度 R 目标导向,设定的目标对大目标具 ...

  5. 41. The Security Namespace

    41.1 Web Application Security网络应用安全 41.1.1 <debug> 启用spring安全调试基础架构.这将提供人类可读的(多行)调试信息来监控进入安全过滤 ...

  6. SpringBoot ---yml 整合 Druid(1.1.23) 数据源

    SpringBoot ---yml 整合 Druid(1.1.23) 数据源 搜了一下,网络上有在配置类写 @Bean 配置的,也有 yml 配置的. 笔者尝试过用配置类配置 @Bean 的方法,结果 ...

  7. JetCache埋点的骚操作,不服不行啊

    阐述背景 缓存是应对高并发绝对的利器,在很多业务场景允许的情况下,都可以使用缓存来提供性能. 既然用了缓存,那对缓存进行监控必不可少.比如缓存加载耗时,新增耗时等. 在 JetCache 中进行埋点操 ...

  8. 记录一下navicat的快捷键

    1.ctrl+q           打开查询窗口2.ctrl+/            注释sql语句3.ctrl+shift +/  解除注释4.ctrl+r           运行查询窗口的s ...

  9. golang 判断前缀后缀、包含关系

    HasPrefix 判断字符串 s 是否以 prefix 开头:strings.HasPrefix(s, prefix string) bool HasSuffix 判断字符串 s 是否以 suffi ...

  10. golang 判断IPv4 or IPv6 address

    import strings func IsIPv4(address string) bool { return strings.Count(address, ":") < ...