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的作用

  1. 面向对象编程思想
  2. 图形界面编程(不是Java的强项)
  3. java的强项是后台(和数据库做连接)
  4. 数据库编程
  5. 文件I/O流
  6. 网络编程
  7. 多线程

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学习日记——基础篇(一)常识的更多相关文章

  1. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  2. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  3. Java学习日记——基础篇(二)基本语法

    变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...

  4. Java学习日记基础篇(九) —— 集合框架,泛型,异常

    集合框架 有事我们会需要一个能够动态的调整大小的数组,比如说要添加新员工但是数组已经满了,并且数组的大小是在定义的时候定死的,所以我们就需要一个能够动态调整大小的数组或者用链表解决,而java中提供了 ...

  5. Java学习日记基础篇(八) —— 二进制、位运算、位移运算

    二进制 二进制是逢2进位的进位置,0,1是基本算符 原码反码补码 在基本数据类型那里,有详细解释 二进制的最高位数是符号位:0表示整数,1表示负数 正数的原码,反码,补码都一样 负数的反码 = 它的原 ...

  6. Java学习日记基础篇(七) —— 数组、排序

    数组 为什么要有数组? 案例:一个养鸡场有六只鸡,他们的体重分别为3kg,5kg,1kg,3.4kg,2kg,50kg.请问这六只鸡的总体重和平均体重是多少? public class test5 { ...

  7. Java学习日记基础篇(三-下)——流程控制之循环控制

    循环控制 for循环 语法: for(循环初值;循环条件;步长) { 语句; //循环体 } 例子: import java.io.*; public class Demo4 { public sta ...

  8. Java学习日记——基础篇(三-上)基本语法之运算符和流程控制

    运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: +   加 -    减 *    乘 /    除 %  取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...

  9. java学习笔记-基础篇

    Java基础篇 1—12 常识 13 this关键字 14参数传递 16 继承 17 访问权限 28—31异常 1—12 常识 1.文件夹以列表展示,显示扩展名,在地址栏显示全路径 2.javac编译 ...

随机推荐

  1. Java InsertionSort

    Java InsertionSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternatio ...

  2. tfs如何为工作项添加变更集

    今天工作中遇到的,可惜之前没怎么用过TFS. 我这是最后一次签入的时候关联了工作项.目的是要把先前签入的绑定到该任务上. 团队自愿管理器->查找历史记录->双击最后一次绑定工作项的变更集- ...

  3. 【转】[STL]vector和deque的内存释放(clear)

    vector的clear成员函数可以清除vector中的元素,使其大小减至0.但它却不能减小vector占用的内存. [cpp] view plain copy int main() { vector ...

  4. Image Processing and Analysis_15_Image Registration:Multi-modal volume registration by maximization of mutual information——1996

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  5. Nginx系列1.2:nginx-rtmp流媒体服务器添加权限认证(推流权限和播放权限)

    用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubu ...

  6. 用js刷剑指offer(二进制中一的个数)

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 牛客网链接 思路 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边的1就会变为 ...

  7. ubuntu---github下载太慢的解决办法

    git clone --recursive https://github.com/tensorflow/tensorflow  下载太慢了,20:05-21:17 才下载了17%,等的太急人了. ** ...

  8. BZOJ 4873 寿司餐厅 网络流

    最大权闭合子图 1.每个区间收益(i,j)对应一个点 权值为正连S 负连T 2.每个区间收益向其子区间收益(i+1,j)与(i,j-1)对应的两个点连边 容量为INF 3.每个寿司类型对应一个点 连一 ...

  9. 数组的新方法 forEach some filter findIndex

    forEach  some  filter  findIndex这些都属于数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作: 只不过在循环的时候有些不一样 参考资料:https://wan ...

  10. 获取TableViewer里面的所有TableViewerColumn

    private TableViewerColumn[] getTableViewerColumns(TableViewer tableViewer) { TableColumn[] columns = ...