了解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条数 ...
随机推荐
- java-web中生成文档(一)
基于Java的解决方案也是很多的,包括使用Jacob.Apache POI.Java2Word.iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样 ...
- 【小练习06】HTML+CSS--教学大讲堂
要求实现如下效果图: 代码演示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
- Java之反射代码演示说明
还不存在的类–即我们需要使用反射来使用的类 Person类: package com.qf.demo4; public class Person { private String name; publ ...
- python对mysql数据库操作的三种不同方式
首先要说一下,在这个暑期如果没有什么特殊情况,我打算用python尝试写一个考试系统,希望能在下学期的python课程实际使用,并且尽量在此之前把用到的相关技术都以分篇博客的方式分享出来,有想要交流的 ...
- RabbitMQ分布式消息队列服务器(一、Windows下安装和部署)
RabbitMQ消息队列服务器在Windows下的安装和部署-> 一.Erlang语言环境的搭建 RabbitMQ开源消息队列服务是使用Erlang语言开发的,因此我们要使用他就必须先进行Erl ...
- JQuery 实现返回顶部
1.添加html <div id="back-to-top"> <a href="javascript:;" title="返回顶部 ...
- JavaScript面向对象之Windows对象
JavaScript之Window对象 首先我们先了解一个概念:事件. 事件,就是把一段代码设置好,满足条件时触发.或者说,事件是可以被 JavaScript 侦测到的行为. 网页中每个元素都可以触发 ...
- RSA加密通信小结(四)--RSA加解密的实际操作与流程小结
在上一篇文章中,我们已经将密钥的生成方法和流程,归纳总结.而本篇主要是讲如何利用密钥进行加解密. 首先,在上一篇文章中的我们生成了很多密钥,证书等等. 在上述生成的文件中,接收服务端加密报文:pkcs ...
- C语言中指针和数组的区别
看<C专家编程>一书,看到数组与指针并不相同一章,遂做了一段测试: 代码: #include <stdio.h> #include <stdlib.h> int m ...
- css__金属质感的文字
金属质感的文字 网上看到的优秀思想!神奇的css~~~~ css div.a { width: 300px; text-align: center; color: white; background: ...