了解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条数 ...
随机推荐
- redis3.2.6 集群安装
下载 [root@localhost ~]# cd /usr/local/src/ [root@localhost src]# wget http://download.redis.io/rele ...
- python爬虫从入门到放弃(六)之 BeautifulSoup库的使用
上一篇文章的正则,其实对很多人来说用起来是不方便的,加上需要记很多规则,所以用起来不是特别熟练,而这节我们提到的beautifulsoup就是一个非常强大的工具,爬虫利器. beautifulSoup ...
- shell中如何进行算术运算
A=3 B=6 1.let算术运算表达式 let C=$A+$B2.$[算术运算表达式] C=$[$A+$B] 3.$(()) C=$(($A+$NB))
- LCA——求解最近公共祖先
LCA 在有根树中,两个节点 u 和 v 的公共祖先中距离最近的那个被称为最近公共祖先(LCA,Lowest Common Ancestor). 有多种算法解决 LCA 或相关的问题. 基于二分搜索的 ...
- Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建
http://blog.csdn.net/u013142781/article/details/50380920
- 【FFmpeg】FFmpeg常用基本命令
1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acod ...
- Winform中Chart图表的简单使用
在常见的一些数据采集的系统中, 都少不了一个就是, 数据分析, 无论是报表的形式, 还是图形的形式. 他都是可以迅速的展现一个数据趋势的实现方法, 而今天, 就是简单介绍一下, 微软的工具库自带的 C ...
- .net core web api + Autofac + EFCore 个人实践
1.背景 去年时候,写过一篇<Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统>,采用Asp.net Web API + Element-UI.当时主要是为了 ...
- 高效率遍历Map以及在循环过程中移除 remove指定key
//高效率遍历Map以及在循环过程中移除 remove指定key //使用iter循环的时候 可以在循环中移除key,for在循环的过程中移除会报错哦 //本方法效率高 Iterator iter = ...
- php中curl远程调用获取数据
$jump_url=$this->_post('locations'); $url=htmlspecialchars_decode($jump_url); $ch = curl_init(); ...