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. 【转载】springboot启动报错(Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWe)

    SpringBoot启动时的异常信息如下: 1 "C:\Program Files\Java\jdk1.8.0_161\bin\java" ......... com.fangxi ...

  2. 数据格式转换string.Format

    1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...

  3. ORACLE:锁被未决分布式事务处理 18.27.160617 持有

    1. 以管理员账号登陆 2. rollback  force '18.27.160617 ';

  4. 微软发布云端基因服务:推动AI驱动的精准医疗

    微软发布云端基因服务:推动AI驱动的精准医疗 2018年03月07日 00:00:00 微软研究院AI头条 阅读数:117    版权声明:本文为博主原创文章,未经博主允许不得转载. https:// ...

  5. JDK1.8新特性(一) ----Lambda表达式、Stream API、函数式接口、方法引用

    jdk1.8新特性知识点: Lambda表达式 Stream API 函数式接口 方法引用和构造器调用 接口中的默认方法和静态方法 新时间日期API default   Lambda表达式     L ...

  6. gradient 渐变

    看了大漠 写的关于 Gradient 的文章,我也想写点以便加深记忆. 首先gradient 分为linear-gradient (线性渐变) 和 radial-gradient(径向渐变),渐变是作 ...

  7. vue路由(一)

    “vue.js 路由允许我们通过不同的 URL 访问不同的内容.通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)”这段是从网上直接抄 ...

  8. navicat 控制mysql某个数据库只属于某个用户

    1.使用navicat 1)首先使用root用户新建连接 2)新建mysql用户 3)点击权限,选择添加权限,出现MySQL中已存在的数据库列表,选择你要为该新建用户开放的数据库,此处选择“maiba ...

  9. 使用了frame的页面如何整体进行跳转,而不是仅frame跳转

    使用了frame的页面如何整体进行跳转,而不是仅frame跳转 js window.parent.location.href="你的地址"; php echo "&quo ...

  10. idou老师教你学Istio12 : Istio 实现流量镜像

    微服务为我们带来了快速开发部署的优秀特性,而如何降低开发和变更的风险成为了一个问题.Istio的流量镜像,也称为影子流量,是将生产流量镜像拷贝到测试集群或者新的版本中,在引导实时流量之前进行测试,可以 ...