了解Java基础原理
Java
是1995年SUN公司推出的一门高级编程语言,是面向互联网的语言,WEB应用程序首选的语言(安卓底层,大数据hadoop框架用java编写,Spark用Scala编写,Scala用java写的),(相对其他语言)简单易学、安全可靠、完全面向对象、跨平台(操作系统,完全忽略操作系统,写完后任何操作系统都可以用)。
跨平台的原理
Java虚拟机---Java Virtual Machine---JVM,针对不同的操作系统,开发了不同的Java虚拟机,一段Java程序并不是直接运行在计算机上而是运行在Java虚拟机上,Java虚拟机将Java程序翻译成当前系统能够识别的命令。Java语言是跨平台的,但是Java虚拟机不是跨平台的。
Java的技术结构
J2SE---标准版
J2EE---企业版
J2ME---移动版(早期有人用,现在几乎不用了)
JDK/JRE/JVM
JVM---Java能够跨平台的前提
JRE---Java Runtime Environment---Java运行时环境---JVM+核心类库
JDK---Java Development Kit---Java开发工具包---开发工具+JRE
java.sun.com
1994年叫Oak---橡树
后改Java---爪哇
JDK1.0(-JDK1.1-1.2(Applet/swing---GUI后来淘汰)-1.3-1.4-1.5(JDK5.0,十个特性)---JDK6---JDK7.0---JDK8(也可以叫1.8/十个特性)到了1.8共有3000多个类和接口方法。
(Jdk1.7.0_75后面75表示更新75次,无论安装了哪个版本,前50个小版本的尽量不要用)
C:\\Program Files(X86)
注意:安装路径中不要出现空格和中文!
编译
将Java代码翻译成计算机能读懂的语言的过程
注意:
1. class文件的文件名和类名对应
2.每一个类编译完成之后都会产生一个class文件
3. 公共类的类名必须和Java文件的文件名一致
4. Java程序运行的入口是主函数,没有主函数,Java程序能够编译
环境变量
是指为操作系统指定的一些运行参数的量
(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)
(2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
关键字
是指在Java中被赋予了特殊含义的单词
一共有53个关键字,其中51个在用,还有2个目前没有使用---const、goto---保留字
|
用于定义数据类型的关键字 |
|||||||
|
class |
interface |
byte |
short |
int |
long |
||
|
float |
double |
char |
boolean |
void |
enum |
||
|
用于定义数据类型值的关键字 |
|||||||
|
true |
false |
null |
|||||
|
用于定义流程控制的关键字 |
|||||||
|
if |
else |
switch |
case |
default |
while |
||
|
do |
for |
break |
continue |
return |
|||
|
用于定义访问权限修饰符的关键字 |
|||||||
|
private |
protected |
public |
|||||
|
用于定义类、函数、变量修饰符的关键字 |
|||||||
|
abstract |
final |
static |
synchronized |
||||
|
用于定义类与类之间关系的关键字 |
|||||||
|
extends |
implements |
||||||
|
用于定义建立实例、判断实例的关键字 |
|||||||
|
new |
this |
super |
instanceof |
||||
|
用于异常处理的关键字 |
|||||||
|
try |
catch |
finally |
throw |
throws |
|||
|
用于包的关键字 |
|||||||
|
package |
import |
||||||
|
其他修饰符关键字 |
|||||||
|
native |
strictfp |
transient |
volatile |
assert |
|||
注意:所有的关键字都是小写的!
标识符
在程序中自定义的名称
定义规则:5点
1可以由字母、数字、_、$组成---不建议使用$符号
2不能使用纯数字、数字不能作为开头
3不能使用关键字
4Java是一门严格区分大小写的语言
5为了提高程序的阅读性,尽量的见名知义
支持中文命名,但是不推荐
class A{}
class a{} 可以这样写,但是windows不允许,windows不区分大小写
驼峰命名法
类名/接口名
如果由多个单词组成,每个单词的首字母大写 HelloWorld
变量名/方法名
如果由多个单词组成,第一个单词的首字母小写,其余单词的首字母大写 playGame
包名
如果由多个单词组成,所有字母全部小写,中间用 . 隔开
常量名
如果由多个单词组成,所有字母全部大写,中间用_隔开
注释
在程序中用来解释或者说明程序的文字
格式
//注释文字 单行注释
/*注释文字*/ 多行注释
/**注释文字*/ 文档注释---往往用于注释类、方法或者常量
javadoc -d .\\document Demo.java---这个命令只能用来提取公共类中文档注释的内容
了解Java基础原理的更多相关文章
- [java基础原理] BigDecimal
1.类 简化示例 属于java.math包,因此包含各种数学运算,abs,pow等等. package java.math; public class BigDecimal { //值的绝对long型 ...
- [java基础原理] 数字类型原理
1.常识 2.包装类型的继承树 3.通用JAVA包装类示例 package base.com.hzeng.jdk; import java.lang.annotation.Native; public ...
- Java基础面试知识点总结
微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...
- Java基础知识点总结
前言 本文主要是我之前复习Java基础原理过程中写的Java基础知识点总结.Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能只是停留在表面上,没有理解其 ...
- java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现
java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析 ...
- java基础解析系列(六)---深入注解原理及使用
java基础解析系列(六)---注解原理及使用 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer ja ...
- java基础解析系列(七)---ThreadLocal原理分析
java基础解析系列(七)---ThreadLocal原理分析 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)-- ...
- java基础解析系列(八)---fail-fast机制及CopyOnWriteArrayList的原理
fail-fast机制及CopyOnWriteArrayList的原理 目录 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列( ...
- Java基础-hashMap原理剖析
Java基础-hashMap原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是哈希(Hash) 答:Hash就是散列,即把对象打散.举个例子,有100000条数 ...
随机推荐
- jQuery对象的创建(一)
在jQuery的常规用法中,执行"$()"返回的是一个jQuery对象,在源码中,它是这样定义的: ... var jQuery = function() { return new ...
- Java 9 揭秘(1.Java入门介绍)
文 by / 林本托 在第一部分中,主要讲解如下内容: JDK 9 包含了哪些内容 运行代码的系统要求 如何安装 NetBeans 1 JDK 介绍 JDK 9是Java开发工具包的第九个主要版本,计 ...
- jquery中html、text、val回调函数
先扫盲: 摘自菜鸟教程:jQuery 方法:text().html() 以及 val()拥有回调函数. 回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值.然后以函数新值返回您希望使 ...
- javaSE_08Java中static、继承、重写-思维导图
思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 : 2)右击在新标签中打开放大查看 (IE不支持,搜狗,360可以):
- Discuz插件开发之全站论坛目录结构注释
基本上新版本的discuzX系列目录结构都差不多,刚好大神整理出来了,就拿来看吧. |-- /api uc.php UCenter通信文件 |-- /api/addon ...
- 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态 ...
- Leetcode 494 Target Sum 动态规划 背包+滚动数据
这是一道水题,作为没有货的水货楼主如是说. 题意:已知一个数组nums {a1,a2,a3,.....,an}(其中0<ai <=1000(1<=k<=n, n<=20) ...
- Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素
最近..... 废话不多说上效果图 用的是UGUI 我先说思路 通过判断元素的位置信息来改变Hierarchy的顺序 实现无限滚动 改变位置的同时也要不断的调整Content的位置防止乱跳 元素锁定就 ...
- js事件循环
之前有看过一些事件循环的博客,不过一阵子没看就发现自己忘光了,所以决定来自己写一个博客总结下! 首先,我们来解释下事件循环是个什么东西: 就我们所知,浏览器的js是单线程的,也就是说,在同一时刻,最多 ...
- Step by Step 用Azure Automation 来开虚机(ARM)
使用Azure Automation来自动化处理各种重复的耗时的云管理任务从而帮助云运维人员提升效率,帮助降低运营成本. 具体相关的介绍以及怎样利用Azure Automation来完成定期开关虚拟机 ...