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编译 ...
随机推荐
- Java InsertionSort
Java InsertionSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternatio ...
- tfs如何为工作项添加变更集
今天工作中遇到的,可惜之前没怎么用过TFS. 我这是最后一次签入的时候关联了工作项.目的是要把先前签入的绑定到该任务上. 团队自愿管理器->查找历史记录->双击最后一次绑定工作项的变更集- ...
- 【转】[STL]vector和deque的内存释放(clear)
vector的clear成员函数可以清除vector中的元素,使其大小减至0.但它却不能减小vector占用的内存. [cpp] view plain copy int main() { vector ...
- Image Processing and Analysis_15_Image Registration:Multi-modal volume registration by maximization of mutual information——1996
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)
用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...
- 用js刷剑指offer(二进制中一的个数)
题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 牛客网链接 思路 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边的1就会变为 ...
- ubuntu---github下载太慢的解决办法
git clone --recursive https://github.com/tensorflow/tensorflow 下载太慢了,20:05-21:17 才下载了17%,等的太急人了. ** ...
- BZOJ 4873 寿司餐厅 网络流
最大权闭合子图 1.每个区间收益(i,j)对应一个点 权值为正连S 负连T 2.每个区间收益向其子区间收益(i+1,j)与(i,j-1)对应的两个点连边 容量为INF 3.每个寿司类型对应一个点 连一 ...
- 数组的新方法 forEach some filter findIndex
forEach some filter findIndex这些都属于数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作: 只不过在循环的时候有些不一样 参考资料:https://wan ...
- 获取TableViewer里面的所有TableViewerColumn
private TableViewerColumn[] getTableViewerColumns(TableViewer tableViewer) { TableColumn[] columns = ...