Java学习日记——基础篇(一)常识
JAVA简介
Java的标准
Java是一种语言,一个平台包含JavaSE、JavaEE、JavaME三个版本
- JavaSE标准版(属于Java的基础部分,可以开发C/S构架的桌面应用程序)
- JavaME迷你版(用于嵌入式设备的开发应用程序,如老手机,掌上电脑的软件)
- JavaEE企业开发版本(可以开发大型的B/S构架应用程序,就是开发在浏览器中运行的程序)
JSP(Java Serve Pages Java服务页)是用于开发动态网页的一种技术,是属于JavaEE的一种技术,目前,最常用的三种动态网页语言有
- ASP(Active Server Pages),
- JSP(JavaServer Pages),
- PHP (Hypertext Preprocessor)
JavaScript属于一种在浏览器中运行的脚本语言,和Java没有联系,用途就是给网页加入一些功能和特效
Java的作用
- 面向对象编程思想
- 图形界面编程(不是Java的强项)
- java的强项是后台(和数据库做连接)
- 数据库编程
- 文件I/O流
- 网络编程
- 多线程
Java的特点
- Java是简单的,比起C是容易掌握的,入门简单
- Java是面向对象的
- Java是跨平台(操作系统)的,即一次编译,到处运行
- Java是高性能的
JAVA的安装和配置
想要Java运行就要安装JDK(Java Development Kit——Java运行程序包),JDK包括
- JRE(Java runtime envirnment——java运行环境),
- 一堆Java工具(例如:排序工具,HTTP工具)
- Java基础的类库(帮助文档点击所有类,即可查看)

安装
注:JDK可以装多个,但是要装在不同的文件夹里
JDK是程序员开发用的,JRE是运行Java程序用的,我把我的程序拷到h的电脑上,他不需要JDK只需要装JRE运行这个程序就行。JDK与JRE的关系
安装过程一直点下一步就行
配置
添加环境变量
C:\Program Files\Java\jdk1.8.0_161\bin
在bin这个文件中有java.exe这个解释执行器,,有javac.exe这个编译程序
注:在添加完路径后,要关闭cmd要不然找不到
编写第一个Java程序
//注释用双斜杠标注
//作者召晖
//在控制台显示"Hello"
//日期2018年8月28日 //public :表示这个类是公共的, 一个Java文件中只能有一个public类
//class : 表示这是一个类
//hello :类名(公共类必须和文件名一致,规定) public class Hello
{
public static void main(String args[]) //一个主函数,相当于是程序的入口
{
//中间写执行语句,system.out是一个包,println是函数
System.out.println("hello!");
}
}
编译的命令是javac 文件全名——javac Hello.java
运行的命令是java 文件名不用带后缀——java Hello

注:javac.exe会获得我们操作系统默认采用的编码格式,而不是java文件的编码。例如win10的默认编码是GBK,而文件内的字符是UTF-8,所以会出现GBK识别不了的情况。解决办法
一、使用-encoding参数指明编码方式:
javac -encoding UTF-8 XX.java 二、直接用IDE输出,例如Eclipse expert jar 文件
编译和JAVA程序运行的关系
Java的运行原理
C语言是编译型语言,而JAVA和Python是解释型语言。
- 编译型语言,源代码最终会编译成机器语言,也就是可执行文件(像windows中的.exe文件)以后CPU就可以直接的执行了。
- 解释型语言像JAVA就是把源代码转化为字节码,把字节码交给JAVA的解释器去执行,从而达到了跨平台的目的,但是效率会底。
Java的源文件(Hello.java)是根本就不能被执行的,是给程人(序员们)看的,计算机是看不懂的,所以要编译成计算机看的懂的字节码文件(Hello.class),执行编译工作的就是Javac.exe
字节码文件(Hello.class)由解释执行器(即Java.exe)将字节码文件加载到Java虚拟机(JVM)中,Java程序实际上是在Java虚拟机(JVM)中运行的,所以能达到跨平台的目的
编译后出现的文件:

图解:

Java学习日记——基础篇(一)常识的更多相关文章
- Java学习日记基础篇(六)—— 抽象类、接口、final
抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...
- Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法
面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...
- Java学习日记——基础篇(二)基本语法
变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...
- Java学习日记基础篇(九) —— 集合框架,泛型,异常
集合框架 有事我们会需要一个能够动态的调整大小的数组,比如说要添加新员工但是数组已经满了,并且数组的大小是在定义的时候定死的,所以我们就需要一个能够动态调整大小的数组或者用链表解决,而java中提供了 ...
- Java学习日记基础篇(八) —— 二进制、位运算、位移运算
二进制 二进制是逢2进位的进位置,0,1是基本算符 原码反码补码 在基本数据类型那里,有详细解释 二进制的最高位数是符号位:0表示整数,1表示负数 正数的原码,反码,补码都一样 负数的反码 = 它的原 ...
- Java学习日记基础篇(七) —— 数组、排序
数组 为什么要有数组? 案例:一个养鸡场有六只鸡,他们的体重分别为3kg,5kg,1kg,3.4kg,2kg,50kg.请问这六只鸡的总体重和平均体重是多少? public class test5 { ...
- Java学习日记基础篇(三-下)——流程控制之循环控制
循环控制 for循环 语法: for(循环初值;循环条件;步长) { 语句; //循环体 } 例子: import java.io.*; public class Demo4 { public sta ...
- Java学习日记——基础篇(三-上)基本语法之运算符和流程控制
运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: + 加 - 减 * 乘 / 除 % 取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...
- java学习笔记-基础篇
Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...
随机推荐
- 洛谷 P1540 机器翻译
链接:https://www.luogu.org/problemnew/show/p1540 题目: 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译 ...
- HTTP协议 学习
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程.客户端连上web服 ...
- python处理RSTP视频流
python链接海康摄像头,并以弹出框的方式播放实时视频流, 这种方式是以弹出框的形式播放.本地测试可以,实际业务场景不建议使用.可以采用rtsp转rtmp的方式 @shared_task def p ...
- Struts标签<s:if>判断字符串是否包含一个固定的值
Struts标签<s:if>判断字符串是否包含一个固定的值:1.如果比较对象是字符串: <s:if test="str.contains('判断是否包含的字符串')&quo ...
- 【Redis】事务 (超详细)
一.概述 二.相关命令列表 2.1 MULTI 2.2 EXEC 2.3 DISCARD 2.4 WATCH key [key ...] 2.5 UNWATCH 三.命令示例 3.1 事务被正常执行 ...
- linux添加地址映射
- sed & awk 概述
概述 一般情况下,从grep到sed和awk的学习过程是很自然的.sed和awk是一般用户.程序员和系统管理员们处理文本文件的有力工具. sed的名字来源于其功能,它是个字符流编辑器(stream e ...
- Go语言—— Array,Slice,Map 和 Set
转自:https://se77en.cc/ Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型 ...
- git rev-list 按照时间来列出两个 commit id 之间的相差数
git rev-list 按照时间来列出两个 commit id 之间的相差数 git rev-list: Lists commit objects in reverse chronological ...
- FFT/FWT
最近舟游疯狂出货,心情很好~ FFT FWT 快速傅里叶变换(FFT) 具体的推导见这篇:胡小兔 - 小学生都能看懂的FFT!!! (写的很好,不过本小学生第一次没看懂0.0) 总结下关键内容 ~ P ...