了解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中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- Quartz源码分析
先简单介绍一下quartz,Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统.quartz可用于创建执行数十,数百甚至数十 ...
- File字节流
1. File f = new File("文件路径") 注意:相对路径:非web项目的相对都是以项目为起点.(src/a/txt(建议) 绝对路径:f: ...
- 一篇文章介绍GItHub的基础使用
最近复习了一下Git的使用,简单总结了一些.以供以后查阅和同行参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...
- selenium+python浏览器窗口的切换
1.首先需要知道当前浏览器中有多少个活动的窗口 >>> br.window_handles[u'{075a54ee-3d10-4c76-b56d-b645259bbd54}', u' ...
- js获取地址栏某个参数
一.获取单个参数: 若地址栏URL为:abc.html?id=123 function getString(){ var locurl=location.href; var sta ...
- 使用HttpClient 调用Web Api
C#4.5 添加了异步调用Web Api . 如果你的项目是4.5以上版本,可以直接参考官方文档. http://www.asp.net/web-api/overview/web-api-client ...
- eclipse debug URLClassPath.getLoader(int) file
版权声明:本文为博主原创文章,未经博主允许不得转载. URLClassPath.getLoader 在用Eclipse调试Java程序时,新手遇到的一个问题是断点老是执行不到,弹出URLClassPa ...
- java.toString() ,(String),String.valueOf的区别
在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 常用的方法有Object#toString(),(String)要转换的对象,S ...
- Spring事务管理注意小事项
在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例外(RunTimeExcep ...