Java Part 001( 01_01_Java概述 )
Java作为编程语言, 甚至超出了语言的范畴, 成为一种开发平台, 一种开发规范.
Java语言相关的JavaEE规范里, 包含了时下最流行的各种软件工程理念, 学习Java相当于系统的学习了软件开发的相关知识, 而不仅仅是完成了一门编程语言.
1.1 Java语言的发展史
Java是由Sun Microsystems公司于1995年5月23日推出的Java面向对象程序设计语言和Java平台的总称. 由James Gosling(詹姆斯·高斯林)和同事们共同研发,并在1995年正式推出.
Oak ---> Java; Sun ---> Oracle
版本 -> 1.2, 1.4, 1.5, 1.6, java8, java10
历史上最重要的版本: JDK1.2 1998年12月, JDK1.2发布, 一同发布的还有JSP/Servlet、EJB等规范; 并将Java分成了下面三个版本 1.JavaSE: 整个Java技术的核心和基础, 它是J2ME和J2EE的编程基础 2.JavaME: 主要控制移动设备和信息家电等有限存储设备 3.JavaEE: 提供了企业应用开发相关的解决方案 JDK历史上最成熟的版本: JDK1.4 2002年2月, JDK1.4发布, 大量基于Java语言的开源框架涌现(Struts Hibernate Spring等); 大量应用服务器开始涌现(Weblogic WebSphere JBoss等) JDK1.5 2004年10月, JDK1.5发布, J2EE更名为JavaEE JDK1.5增加了泛型, 增强for循环, 可变参数, 注释, 自动拆装箱等功能 JDK1.6 2006年4月
1.2 Java的竞争对手及各自优势
Java是面向对象编程语言, 与Java类似的语言有C#, Ruby, Python等
Python的简介和优势
2017年左右因为人工智能的发展Python的知名度开始迅速升高, 初始Python了解不是很多, 自己总结一下( 进不去这个行业, 也只能了解一点皮毛而已 )
Python的岗位: PythonWeb开发, 自动化运维, 自动化测试, 爬虫, 数据挖掘, 数据分析, 人工智能(我觉得C才是重点)
Python的缺点: 对于以上能实现的领域来说, Python可能会偏重于使用者的数学、算法等能力
Python的框架: Flask, Django
个人分析: 2018-2019年, 学历至少统招本科, 且最好是数学或计算机相关专业, 否则找工作还是很困难的, 另外PythonWeb开发的面试机会大约为Java开发的十分之一
1.3 Java程序运行机制
Java语言是一种特殊的高级语言, 它既具有解释型语言的特性, 也具编译型语言的特性, 因为Java程序要经过编译和解释两个步骤.
计算机高级语言的执行方式: 编译型语言和解释型语言
编译型语言: 源码一次性编译为该平台硬件执行的机器码(如.c --> .exe)
移植性差, 机器码和平台相关, 需要根据源码在不同平台生成相应的机器码
解释型语言: 源码, 编译生成字节码文件, 解释器将字节码解释为机器码执行
跨平台性强, 处理速度慢, 字节码文件通过不同平台的解释器处理得到的效果是相同的
Java程序的执行原理

1.4 开发Java的准备
需要准备如下环境: 编辑器(编写源码程序), JDK(编译程序, 解释并执行java程序)
编辑器: 学习前期可以使用记事本/EditPlus/Notpad++
JDK/JRE/JVM
JRE: Java运行时环境( 包含Java开发工具包, JRE ) JDK: Java开发工具包( 包含JVM ) JVM是一个抽象的计算机, 和实际的计算机一样, 它具有指令集并使用不同的存储区域. 它负责执行指令, 管理数据/内存/寄存器
JVM的相关细节( 指令集, 寄存器, 类文件的格式, 栈, 垃圾回收堆, 存储区 )
环境搭建(JDK)
1.安装JDK
Java分为三个版本,这三个版本都存在对应的JDK, 如果是进行JavaEE开发,就选择JavaEE的JDK
傻瓜式安装, 注意(1)安装路径不能含有空格等特殊字符, (2)不需要安装独立的JRE(安装快结束时会有安装独立JRE的提示)
2.配置环境变量
JAVA_HOME D:\software\java\jdk\jdk1.8.0_162_001
path %JAVA_HOME%\bin;
3.检查环境变量
C:\Users\Administrator> java -version
java version "1.8.0_162"Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
C:\Users\Administrator> javac -version
javac 1.8.0_162
1.5 第一个Java程序
1. 编写Java源代码( Hello.java )
public class HelloWorld {
//定义一个主函数, 作为程序的入口
public static void main(String[] args) {
//打印一个字符串 HelloWorld
System.out.println("HelloWorld");
}
}
2. 编译Java程序
D:\code\fjk\java\se001\day001>javac HelloWorld.java 执行后生成HelloWorld.class
3. 运行Java程序
D:\code\fjk\java\se001\day001>java HelloWorld 执行后输出: HelloWorld
4. 根据CLASSPATH环境变量定位类
暂时未用到过, 忽略
1.6 Java程序的基本规则
1. Java程序的组织形式
Java程序是一种纯粹面向对象的设计语言, 因此Java程序必须以类的形式存在, 类是Java程序的最小单位.
class HelloWorld {
//最简单的Java程序
}
2. Java源文件的命名规则
后缀名必须是.java 文件名必须与public修饰的类的类名相同 实际开发中, 一个有且只有一个public类, 且该类类名和文件名相同
1.7 垃圾回收机制
Java语言不需要程序员直接控制内存的回收, Java程序的内存分配和回收都是由JRE在后台自动进行的.
JRE会负责回收那些不再使用的内存, 这种机制成为垃圾回收(Garbage Collectio, 也成为GC).
1.8 本章小结
本章简单介绍了Java的发展史, Java的运行机制, Java的垃圾回收机制.
本章练习
1. 搭建自己的Java开发环境
2. 用Java语言编写HelloWorld
Java Part 001( 01_01_Java概述 )的更多相关文章
- 【java基础学习001】概述
001.1 一个简单的Java程序 public class hello { public static void main(String[] args) { System.out.printl ...
- Java NIO:NIO概述
Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题.NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题.本文下面分别从Java ...
- java 复习001
java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...
- (转载)Java NIO:NIO概述(一)
Java NIO:NIO概述 在上一篇博文中讲述了几种IO模型,现在我们开始进入Java NIO编程主题.NIO是Java 4里面提供的新的API,目的是用来解决传统IO的问题.本文下面分别从Java ...
- JAVA面向对象-----内部类的概述
JAVA面向对象-–内部类的概述s 将类定义在另一个类的内部则成为内部类.其实就是类定义的位置发生了变化. 在一个类中,定义在类中的叫成员变量,定义在函数中的叫成员函数,那么根据类定义的位置也可以分为 ...
- Java Learning 001 新建一个Java工程 HelloWorld程序
Java Learning 001 新建一个Java工程 HelloWorld程序 Step 1 . 在Eclipse 软件里,点击: File -> New -> Java Projec ...
- Java性能调优概述
目录 Java性能调优概述 性能优化有风险和弊端,性能调优必须有明确的目标,不要为了调优而调优!!!盲目调优,风险远大于收益!!! 程序性能的主要表现点 执行速度:程序的反映是否迅速,响应时间是否足够 ...
- Java包的基本概述
第七章 7.1 包的基本概述 起因: 在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包.(还有其他作用,下述) 简单理解: ...
- IBM Developer:Java 9 新特性概述
Author: 成富 Date: Dec 28, 2017 Category: IBM-Developer (20) Tags: Java (27) 原文地址:https://www.ibm.com/ ...
随机推荐
- 从0开始学FreeRTOS-(列表与列表项)-3
# FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像. 在`FreeRTOS`中,列表与列表项使用得非常多 ...
- ES6——箭头函数与普通函数的区别
ES6标准新增了一种新的函数:Arrow Function(箭头函数). 为什么叫Arrow Function?因为它的定义用的就是一个箭头: 语法: //1.没有形参的时候 let fun = () ...
- python编程基础之二
交互式: 此处以windows为例:开始->运行->cmd,输入python 交互式界面 优点:即时,所见即所得 缺点:代码不可复用,根本无法进行维护 退出:exit() 代码是顺序执行: ...
- TCP三次握手、四次握手
前言 TCP用于应用程序之间的通信.当应用程序希望通过TCP与另一个应用程序通信时,它会发送一个通信请求.这个请求必须被送到一个确切的地址.在双方“握手”之后,TCP将在两个应用程序之间建立一个全双工 ...
- 小白学 Python(1):开篇
人生苦短,我用 Python 引言 大家好,可能大家都对我比较熟悉了,不熟悉请去面壁(现在熟悉一下也来得及)~ 简单做一个自我介绍,我是极客挖掘机的唯一作者,一位油腻的 Java 程序员[臭鸡蛋什么的 ...
- 用 Sphinx 搭建博客时,如何自定义插件?
之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建. 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清 ...
- Java8两大特性(一)——Stream
什么是Stream? Stream(流)是一个来自数据源的元素队列并且支持聚合操作,元素流在管道中经过中间操作,最终操作得到结果. 数据源:集合,数组,I/O channel,产生器generator ...
- PHP call_user_func的一些用法和注意点
版本:PHP 5.6.28 在call_user_func的调用中: 1.参数的传递过程,并不是引用传值. 1 error_reporting(E_ERROR); // 此处不是E_ALL 2 $cu ...
- spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别
概念 Bean创建过程中的"实例化"与"初始化"名词 实例化(Instantiation): 要生成对象, 对象还未生成. 初始化(Initialization ...
- java学习5-面向对象(下)
final修饰符: final用于修饰类.变量和方法. final修饰变量时,一旦获得了初始值就不可改变 1.抽象方法和抽象类 抽象方法与抽象类的规则: a.抽象方法和抽象类必须使用abstract修 ...