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 线程:进程是操作系统结构的基础,是一次程序的执行,是一个程序及其数据在处理顺序时发生的活动:是程序在一个数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位. ...
随机推荐
- 浅谈flex布局中小技巧
最近有个面试,面试官问到,在一个横向布局上,假设有三个div,每个宽度为定宽apx,如果想使两侧宽度为x,中间div间间隔为2x.x可以自适应.如下图: 怎么做很简单,两行代码就搞定: justi ...
- ACM-ICPC 2018 沈阳赛区网络预赛 F Fantastic Graph(贪心或有源汇上下界网络流)
https://nanti.jisuanke.com/t/31447 题意 一个二分图,左边N个点,右边M个点,中间K条边,问你是否可以删掉边使得所有点的度数在[L,R]之间 分析 最大流不太会.. ...
- JS 获取本月第一天零点时间戳并转化成yy-mm-dd
JS 获取本月第一天零点时间戳并转化成yy-mm-dd 格式 <!DOCTYPE html> <html> <head> <meta charset=&quo ...
- 第31月 第9天 责任链AppDelegate
1.AppDelegate 到这里我们把解决方案再明确一下:把 AppDelegate 的调用解耦成一个 责任链 模型.并且满足以下特征: 每个模块都可以无限制的实现 AppDelegate 的方法. ...
- Codeforces Round #552 (Div. 3) F. Shovels Shop(dp)
题目链接 大意:给你n个物品和m种优惠方式,让你买k种,问最少多少钱. 思路:考虑dpdpdp,dp[x]dp[x]dp[x]表示买xxx种物品的最少花费,然后遍历mmm种优惠方式就行转移就好了. # ...
- 【nginx】配置
server { listen 80; server_name hocalhost; location / { root /usr/share/nginx/html; index index.html ...
- python2编码问题
前言:python3解决了编码的问题,但python2还存在很多编码问题,用P2写爬虫爬了网页,解析时常有不同字符混着编码,导致解码问题成为爬虫程序员的噩梦... 但咱们要用robot framewo ...
- MySQL插入中文数据出现?号
原文转载自:https://blog.csdn.net/LynneZoe/article/details/79174119 运行环境:win10 mysql版本:Mysql5.6 做一个项目的时候,向 ...
- 软件测试之实际工作工作方式001--log4
软件测试之实际工作工作方式001--log4 Dotest软件测试-董浩整理 领导安排任务后: 1)首先要确认理解:是指的某工作吗?具体有什么要求吗?时间截止到什么时候? 解析: a.万一 ...
- kafka单机安装和启动
1.下载并解压到/usr/local/src目录下 2.运行kafka需要使用Zookeeper,先启动Zookeeper,如果没有Zookeeper,可以使用kafka自带打包和配置好的Zookee ...