Java编程入门-狂学笔记1

计算机原理

冯诺依曼体系结构

美籍匈牙利数学家冯·诺依曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。

输入设备:比如键盘,鼠标等,它把数据传输给存储器,并由控制器控制,
存储器:比如(主存)内存,(辅存)硬盘等,它从输入设备获取数据,与运算器交换数据,把数据给控制器输出设备(先从内存读取,如果内存没有,再从硬盘获取)
输出设备:数据从存储器获得,并由控制器控制
CPU

  1. 运算器:只和存储器交换数据
  2. 控制器:只和存储器交互(从存储器获得指令流,并且控制存储器)

一定要记住数据流的走向
CPU读取数据时首先从内存中去读,如果内存中没有,再去辅助存储器(比如硬盘)读,把硬盘的读入到内存,然后才会被CPU读取到。
CPU运算后的结果,先存入内存,然后再存入硬盘。
保存数据是将内存的数据写入硬盘,只要硬盘不坏,数据就一直在硬盘里。

Java编程入门-狂学笔记1

计算机软件

计算机软件可以使计算机按照事先约定好的顺序完成特定功能
计算机软件按运行层级可以划分为系统软件应用软件

语言历史

  • 机器语言
  • 汇编语言
  • 高级语言
    • C(面向过程)(鼻祖)
    • C++ (面向对象)
    • JAVA (服务器开发)
    • Python(大数据,人工智能)
    • PHP(快速构造网站)

Java发展

  • Java标准版(J2SE):(基础)桌面应用(桌面程序,控制台开发)
  • Java移动版(J2ME):(不重要)嵌入式开发(手机应用,小家电)
  • Java企业版(J2EE):(最广)E企业级开发(web端,服务器开发……)

Java特性:高可用,高性能,高并发

  • 基于java开发平台、系统、工具
    • 构建工具:Ant、Maven、Jekins
    • 应用服务器:Tomcat、Jetty、Jboss、Websphere、weblogic
    • Web开发:Struts、Spring、Hibernate、MyBatis
    • 开发工具:Eclipse、Netbean、Intellij idea、Jbuilder
    • 领域:Hadoop、Android

Java特性与优势

  • 简单性

    无需管理内存分配,指针等,更多时间专注业务开发

  • 面向对象
  • 可移植性 write once,run anywhere
  • 高性能 (可能以后超过C++)
  • 分布式 (url)
  • 动态性 (反射)
  • 多线程
  • 安全性(防病毒,防篡改,捕获异常)
  • 健壮性

JDK、JRE、JVM

  • JDK:Java Development Kit (java 开发者工具)
  • JRE:Java Runtime Environment
  • JVM:Java Virtual Machine(java虚拟机 跨平台)
    Java编程入门-狂学笔记1

JDK环境搭建

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
不配置环境变量/etc/profile也能用,为啥?

  • 检验

java -version
java version “1.8.0_121”
Java™ SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot™ 64-Bit Server VM (build 25.121-b13, mixed mode)

Hello,world!

  • 编写程序
public class Hello{
	public static void main(String[] args){
		System.out.print("Hello World!");
	}
}
  • 编译java文件,会生成一个生.class文件
javac Hello.java
  • 运行.class文件
java Hello
Hello World!%

疑问?为啥有个%,没百度出来
Java编程入门-狂学笔记1

Java运行机制

  • 先编译型 (全部编译后运行)
  • 后解释型(一句一句运行)

Java这个语言很非凡。
一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。
二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。
像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM所以 Java实现了真正意义上的跨平台!
Java编程入门-狂学笔记1

上一篇:测开:从0到1,自动化测试接入Jenkins学习


下一篇:Jenkins前端自动化部署