1.JAVA分类
JAVA SE:基础核心(面向对象、API、JVM...)
JAVA ME:(游戏、通讯开发)
JAVA EE(JSP/Sevlet\EJB\服务开发、企业应用)
2.JAVA语言特点
①面向对象
②适合分布式计算:
java应用程序可以像访问本地文件系统一样通过URL访问远程对象
使用JAVA语言编写Socket通信程序比任何语言都简单
可以使用JAVA小应用程序(Applet)、java服务器页面(java Server Page、JSP)、Servlet等手段构建丰富的网页
③有良好的性能
java是解释型语言,执行效率相对慢一些,由于Java语言采用下面两种手段,使其拥有较好的性能
-》java语言源程序编写完成之后,先使用java伪编译器进行伪编译,将其转换为中间码(也称为字节码)再解释
-》提供一种“准实时”(Just-in-Time,JIT)编译器,当需要更快的速度时,可以使用JI编译器将字节码转换为机器码,然后将其缓冲下来,这样速度就会很快
④健壮
Java语言在伪编译时,做了许多早起潜在问题的检查,并且在运行时又做了一些相应的检查,可以说是一种最严格的编译器。
⑤具有多线程处理的能力
线程是一种轻量级进程,是现代程序设计中比不可少的一种特性。多线程处理能力使程序具有更好的交互性、实时性。
⑥JAVA是一种动态语言
可以简单、直观地查询运行时的信息
可以将新代码加入到一个正在运行的程序中
⑦JAVA语言是一种中性结构
java编译器生成的是一种中性的对象文件格式。java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。
java的这种字节码经过精心设计,能够很好的兼容于当前大多数流行的计算机系统,在任何机器上都易于解释,易于动态翻译成为机器代码。
3.JAVA程序的运行机制和JAVA虚拟机
计算机高级语言类型主要有编译型和解释型两种,Java是两种类型的集合,JAVA处理代码的过程如下
JAVA程序的运行机制:
Hello.java文件---》编译-----》Hello.class文件---》解释为字节码 01101100...-->在计算机上动态翻译成为机器代码
Java中源文件名称的后缀为 .java,之后通过编译使 .java文件生成一个 .class文件,在计算机上执行 .class文件,此时执行.class文件的计算机并不是一个物理上的计算机,而是JAVA自己设计的计算机--》JVM
Java也是通过JVM进行可移植性操作的
在JAVA中所有的程序都是在 JVM(java Virtual Machine)上运行的。
JVM是在一台计算机上由软件或硬件模拟的计算机。java虚拟机(JVM)读取并处理经编译过的、与平台无关的字节码class文件,java解释器负责将java虚拟机的代码在特定的平台上运行。
JVM基本原理:
Source.java-------->编译-------->Source.class------》执行(JVM for Dos、JVM for Winx、JVM for UNIX)
所有的 .class文件都是在 JVM上运行的, .class文件只需要认识 JVM,由虚拟机再去适应各个操作系统。如果不同的操作系统安装上符合其类型的 JVM,那么程序无论在哪个操作系统上都是可以正确执行的。
4.JAVA开发环境搭建
java开发环境主要使用 JDK
JDK安装配置:
①准备好JDK安装文件
②配置环境变量Path
③安装完成后,bin文件夹是将来要使用的各种Java命令,但是这些命令本身不在Windows环境中,如果想要使用这些命令,现在Windows中注册这些命令
设置Path流程:我的电脑--》属性--.>系统属性--》高级--》环境变量
设置path时,可以直接设置Java的安装路径。如: ;D:\Java\jdk1.6.0_11\bin -----》设置完成后启动 cmd命令行中输入 javac,出现相关用法表示JDK安装成功
注意事项:
Path修改之后要重新启动命令行方式
在进行环境设置时可能会出现此命令不是系统内部命令的提示,造成这种问题的原因是在配置环境属性之前命令行方式已经启动,之后再配置的path路径,此环境是无法立即生效的,
此时需要重新启动命令行方式,可以把新的配置读取进来。
cmd中输入javac命令查看环境变量配置是否正确
javac.exe是 Java本身提供的编译命令,主要用来将 .java文件编译成 .class文件
5.java程序介绍
java程序分为两种类型
一种是Application程序:有main方法的程序
另外一种是Applet程序--》网页编程,已经不使用
6.classpath属性的作用
在Java中使用 set classpath命令指定Java类的执行路径
假设 Hello.calss 类位于 f:/test 目录下
在D盘命令行窗口执行下面指令:
set classpath=f:\test
然后在D盘根目录下执行java Hello 命令,虽然D盘没有Hello.calss文件,也可以执行。就是因为使用set classpath命令将类的查找路径指向了 f:\test 目录,所以在运行时会从f
f:\test 目录查找需要的类
classpath与JVM的关系:
classpath主要指的是类的运行路径,实际上在执行Java命令时,对于本地的操作系统来说就意味着启动了一个JVM
JVM在运行时需要通过 classpath 加载所需要的类
默认情况下classpath指向当前命令行窗口所在的目录,所以会从此目录下直接查找
classpath在编译时不起作用,classpath只在java运行时起作用
在java编译时,如果命令行所在的目录不是 .java所在的目录,应该输入完整的路径名称即“javac e:/Hello.java”
7.使用 public class 和 calss 声明类的区别
在JAVA中声明一个类的方式有两种,即 public class 类名称 、class 类名称
①使用 "public class 类名称“ 声明类时,类名称必须与文件名称一致,否则程序将无法编译
②使用“calss 类名称” 声明一个类时,类名称可以与文件名称不一致,但是在执行时一定要执行生成后的 .class
③在一个 Java文件中可以有多个 class 类的定义,但只能有一个 public calss定义
④定义类名称是开头首字母为大写
public static void main(String arg[])是程序的主方法,所有的程序都会以此方法作为起点并运行下来
8.常量和变量
变量:利用声明的方式将内存中的某个内存块保留下来以供程序使用。可以声明的数据类型为整型、字符型、浮点型或是其他数据类型,作为变量的保存之用。
变量可以用来存放数据,使用变量之前必须先声明它的数据类型
常量:就是一个固定的数值,是不可以改变的。
9.Java的常见误解
10.Java关键字

总结:
1.java实现可移植性靠的是JVM。JVM就是一台虚拟计算机,只要在不同的操作系统上植入不同版本的JVM,Java程序就可以在各个平台上移植,做到“一次编写,处处运行”。
2.Java中循序的执行步骤为:
①使用 javac 将一个 *.java 文件编译成 *.class 文件
②使用 java 可以执行一个 *.calss 文件
3.每次使用 java 命令执行一个 class 时,都会启动 JVM,JVM 通过 calsspath给出的路径加载所需要的类文件,可以通过 set calsspath 设置类的加载路径。
4.java程序主要分为两种,即Java Application 和 Java Applet 程序,Java Applet主要主要是在网页中嵌入的Java程序,基本上不载使用了。Application是指有 main 方法的程序。
- Java第一章----Java概述+环境搭建
写在前面的话: Java基础的东西看过好几遍,但是过一段都就忘记了,所以这次我决定花费一些时间整理一个系列博客供以后方便查阅.此系列根据Java编程思想+Java核心技术两本书整理而来,这两本书也是我 ...
- javaSE习题 第一章 JAVA语言概述
转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...
- 第一章 Java的I/O演进之路
I/O基础入门 Java的I/O演进 第一章 Java的I/O演进之路 1.1 I/O基础入门 1.1.1 Linux网络I/O模型简介 根据UNIX网络编程对I/O模型的分类,UNIX提供了5中I/ ...
- 第一章 数据库概述、MySQL的安装和配置
第一章 数据库概述.MySQL的安装和配置 1.为什么要使用数据库 最早是纸质文件来存储数据 缺点:不易保存,占用空间大 计算机出现以后,采用软件来进行保存(excel) 缺点:容易损坏 文件 ...
- Laxcus大数据管理系统2.0(2)- 第一章 基础概述 1.1 基于现状的一些思考
第一章 基础概述 1.1 基于现状的一些思考 在过去十几年里,随着互联网产业的普及和高速发展,各种格式的互联网数据也呈现爆炸性增长之势.与此同时,在数据应用的另一个重要领域:商业和科学计算,在各种新兴 ...
- Java基础知识二次学习-- 第一章 java基础
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...
- [OpenGL红宝书]第一章 OpenGL概述
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向Op ...
- 第一章 –– Java基础语法
第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4 ...
- 第一章 java基本多线程技能
第一章 java多线程技能 1 线程:进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理顺序时发生的活动:是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位. ...
随机推荐
- Linux系统下DHCP服务安装部署和使用详解
一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...
- sklearn_收入模型
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- airflow1.10时区修改
https://blog.csdn.net/crazy__hope/article/details/83688986
- 3DMAX中坐标解析
World:世界坐标系,又称世界空间.位于各视口左下角的图标,显示了世界坐标系的方向,其坐标原点位于视口中心.该坐标系永远不会变化. Screen:屏幕坐标系,此时将使用活动视口屏幕作为坐标系.在活动 ...
- idea中pom.xml添加了新的maven依赖,点击import changes没反应
打开file,setting. 选择Build,Execution,Deployment -> Build Tools -> Maven. 修改maven home directory为自 ...
- Exp5 MSF基础应用 20164314
一.实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 1.一个主动攻击实践,如ms08_067; (成功) 2.一个针对浏览器的攻击,如ms1 ...
- 分布式系列十二: Redis高级主题
持久化 Redis 支持持久化, 其持久化数据有两种方式. 两种可以同时使用. 如果同时使用, Reids 在重启时将使用 AOF 方式来还原数据. RDB 按照一定策略定时同步内存的数据到磁盘.文件 ...
- C++ opentracing zipkin
Useful page : https://github.com/openzipkin/b3-propagation & other official websites Steps to ru ...
- ngx_string()错误分析
#define ngx_string(str) { sizeof(str) - 1, (u_char) str } typedef struct { uint len; u_char* data; } ...
- python正则表达式--flag修饰符、match对象属性
正则表达式—修饰符 正则表达式可以包含一些标志修饰符来控制匹配模式,用在正则表达式处理函数中的flag参数中,为可选参数. (1) re.I 全写(re.IGNORECASE) 表示使匹配时,忽略大小 ...