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. 洛谷 P1540 机器翻译

    链接:https://www.luogu.org/problemnew/show/p1540 题目: 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章. 题目描述 这个翻译 ...

  2. HTTP协议 学习

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程.客户端连上web服 ...

  3. python处理RSTP视频流

    python链接海康摄像头,并以弹出框的方式播放实时视频流, 这种方式是以弹出框的形式播放.本地测试可以,实际业务场景不建议使用.可以采用rtsp转rtmp的方式 @shared_task def p ...

  4. Struts标签<s:if>判断字符串是否包含一个固定的值

    Struts标签<s:if>判断字符串是否包含一个固定的值:1.如果比较对象是字符串: <s:if test="str.contains('判断是否包含的字符串')&quo ...

  5. 【Redis】事务 (超详细)

    一.概述 二.相关命令列表 2.1 MULTI 2.2 EXEC 2.3 DISCARD 2.4 WATCH key [key ...] 2.5 UNWATCH 三.命令示例 3.1 事务被正常执行 ...

  6. linux添加地址映射

  7. sed & awk 概述

    概述 一般情况下,从grep到sed和awk的学习过程是很自然的.sed和awk是一般用户.程序员和系统管理员们处理文本文件的有力工具. sed的名字来源于其功能,它是个字符流编辑器(stream e ...

  8. Go语言—— Array,Slice,Map 和 Set

    转自:https://se77en.cc/ Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型 ...

  9. git rev-list 按照时间来列出两个 commit id 之间的相差数

    git rev-list 按照时间来列出两个 commit id 之间的相差数 git rev-list: Lists commit objects in reverse chronological ...

  10. FFT/FWT

    最近舟游疯狂出货,心情很好~ FFT FWT 快速傅里叶变换(FFT) 具体的推导见这篇:胡小兔 - 小学生都能看懂的FFT!!! (写的很好,不过本小学生第一次没看懂0.0) 总结下关键内容 ~ P ...