Java【初识篇】语言概述
什么是计算机语言
语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而中国人要和英国人交流,就要学习英语。
计算机语言(编程语言):人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语言。计算机语言有很多种,如:C,C++,Java,Python等。
什么是程序
为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合,就是计算机程序;
编写程序的工具 就是计算机语言,Java是目前应用最广泛的编程语言。
最新编程语言排名(java排名第一)
https://www.tiobe.com/tiobe-index/
Java平台有三个版本
JavaSE
Java Platform Standard Edition 标准版,包含Java语言的基础核心
用于开发桌面应用程序,如QQ、记事本、计算器等
JavaEE
Java Platform Enterprise Edition 企业版,以前也称为J2EE,包含JavaSE
用于开发企业应用程序,如Web网站、分布式应用等
JavaME
Java Platform Micro Edition 微缩版/移动版
用于开发移动设备/嵌入式设备的应用,如手机游戏
Java语言特点
特点一:面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
特点二:健壮性
吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分。如:指针、内存的申请与释放等
特点三:跨平台性
一次编写,出处运行;
跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。
特点三:安全的
安全机制,防止恶意代码的攻击
特点四:简单的
语法简洁,去除不常用的功能
Java两大核心机制
Java虚拟机(Java Virtual Machine)
垃圾收集机制(Garbage Collection)
Java虚拟机
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。
JVM 用于运行 Java 应用程序
对于不同的平台,有不同的虚拟机,Java的跨平台就是通过在不同的平台安装相应的JVM来实现的。
Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。
编译:通过编译器
执行:通过解释器
垃圾收集机制
垃圾回收:将不再使用的内存空间进行回收。
在 C/C++ 等语言中,由程序员负责回收无用内存。
Java 不需要程序员负责回收无用的内存:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
垃圾回收在 Java 程序运行过程中自动进行,程序员无法精确控制和干预。
JDK & JRE
简单而言,使用 JDK 的提供的开发工具完成 java 程序的开发,使用 JRE 运行开发好的 Java 应用程序。
JDK(Java Development Kit Java开发工具包,包含jre):JDK是提供给 Java 开发人员使用的,其中包含了 java 的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了
JRE(Java Runtime Environment Java运行环境,jre可以单独装,用于只运行不开发) :包括Java虚拟机(JVM:Java Virtual Machine)和 Java 程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。运行需要jre运行环境,java在虚拟机中运行,jre中有jvm。
jdk
jdk包含了jre
jdk、jre、jvm的关系
下载、安装JDK、配置环境变量
安装路径不要有中文或者特殊符号如空格等。
当提示安装 JRE 时,可以选择不安装。
参考:https://www.cnblogs.com/UncleYong/p/10732951.html
编写第一个 Java 应用程序
步骤:
将 Java 代码编写到扩展名为 .java 的文件中。
通过 javac 命令对该 java 文件进行编译。
通过 java 命令对运行 class 文件
package com.uncleyong; public class HelloWorld{
// main 方法
public static void main(String [] args){
// 在控制台中打印字符串
System.out.println("Hello World!");
}
}
说明:
package:关键字,表示包
com.uncleyong:包名,点号在windows中表示\
public:java的修饰符,公开的
class:关键字,表示类
HelloWorld:类名
static:java的修饰符,静态的
void:表示返回类型
main:Java应用程序的执行入口是main()方法。它有固定的书写格式:public static void main(String[] args) {...},如果没有 main 方法则在运行时会抛出如下异常
String[] args:方法的参数列表,String是一个类名,表示的是字符串,args是变量名,可以更改
System:类名,系统这个类
out:系统类中的属性,表示系统输出流
println:系统输出流中的方法
"Hello World!":字符串,双引号包起来
Java 语言严格区分大小写
Java方法由一条条语句构成,每个语句以分号结束
一个 Java 源文件中最多只能有一个 public 类。其它类的个数不限,如果源文件文件包含一个 public 类,它必须是该类名命名。
如果文件中类都没有带public,那么文件名可以任意(可以和任意一个类名一样,也可以和所有类名都不一样),但是,运行的时候,java后面跟包含main方法的类名
注意:一般一个java文件中就只写一个类
HelloWorld.java class HelloWorld2{
//main 方法
public static void main(String [] args){
//在控制台中打印字符串.
System.out.println("HelloWorld!");
}
} class Test{
public void test(){
System.out.println("测试类。");
}
}
编译的时候,文件要带后缀
运行的时候,java后面跟的是包含main方法的类名
文件中两个类,编译后生成两个class文件
如果java Helloworld2报如下错,就检查环境变量(classpath加上.;)
错误: 找不到或无法加载主类 HelloWorld2
如果java文件中有包名
文件名:HelloWorld2.java
package com.uncleyong.ex; class HelloWorld{
//main 方法
public static void main(String [] args){
//在控制台中打印字符串.
System.out.println("Hello, World!");
} } class HelloWorld3{
public void test(){
System.out.println("test");
}
}
java运行的时候,要带上包名;
javac运行之后,会根据包名生成相对应的文件夹名;
一个类中可以有多个方法(可以包含main方法,main方法位置随意)
文件名:HelloWorld2.java
class HelloWorld{
public void test(){
System.out.println("test");
}
//main 方法
public static void main(String [] args){
//在控制台中打印字符串.
System.out.println("Hello, World!");
} }
另外,如果java文件已经在对应的包下,编译时就不需要-d参数了,运行时还是要加包名
注释
注释:用于解释说明程序的文字,提高了代码的阅读性。
Java中的注释类型:
单行注释,格式: //注释文字
多行注释,格式: /* 注释文字 */
文档注释(java 特有),格式:以 /** 开始,以 */结束,文档注释允许你在程序中嵌入关于程序的信息,有了这个注释就可以使用 javadoc 工具软件来生成信息(比如:javadoc xxx.java),并输出到HTML文件中
注释是一个程序员必须要具有的良好编程习惯。
将自己的思想通过注释先整理出来,再用代码去体现
对于单行和多行注释,被注释的文字,不会被JVM(java虚拟机)解释执行
多行注释不能嵌套。
编码规范
语句必须以分号结尾
标点符号必须为英文符号
大小写敏感,即区分大小写
建议:
所有命名不建议使用中文、空格、特殊字符等,不要以数字开头
一行只写一条语句
{}的使用及位置
合理的代码缩进
Java【初识篇】语言概述的更多相关文章
- 乐字节Java学习01-Java语言概述,Java发展前景,Java的特点
从这篇文章开始,小乐准备写一整系列的Java学习文章,一步一步带您进入Java的神奇世界! 这是第一篇:Java语言概述以及Java的发展前景 1.SUN公司介绍 SUN公司全称是Stanford U ...
- java基础---java语言概述
一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...
- 第1章 Java语言概述--HelloWorld--环境搭建
SE学什么 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程(下) 第7章 异常处理 第8章 枚举类&注解 ...
- javaSE习题 第一章 JAVA语言概述
转眼就开学了,正式在学校学习SE部分,由于暑假放视频过了一遍,略感觉轻松,今天开始,博客将会记录我的课本习题,主要以文字和代码的形式展现,一是把SE基础加强一下,二是课本中有很多知识是视频中没有的,做 ...
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- 2015/12/29 Java语言概述 操作中注意事项
java语言概述 ①版本分类:JavaSE 标准版 桌面开发 JavaEE 企业版 网络开发 JavaME 移动版 嵌入式开发(塞班系统 ...
- 一、Java语言概述与开发环境、第一个java程序
目录: 1.1 Java特点 1.2 Java程序运行机制 1.3 安装JDl和配置环境变量 1.4 第一个JAVA程序 1.5 第一个JAVA程序的含义 前言 Java语言历时近二十年,已发展成为人 ...
- 【Java基础】Java 语言概述
Java 语言概述 主要应用场景 JavaEE.大数据.Android 开发方向. 基础知识概述 编程语言核心结构 变量.基本语法.分支.循环.数组.- Java 面向对象的核心逻辑 OOP.封装.继 ...
- 【疯狂Java学习笔记】【第一章:Java语言概述】
[学习笔记]1.Java与C#的异同:Java与C#的相同之处有很多,它们均摒弃了C++面向对象的多继承.宏定义.全局变量.全局函数.指针等等难以使用的机制,添加进了成熟的机制,如垃圾回收.接口等等. ...
- 第一天 Java语言概述
一.什么是软件 软件就是按照特定的顺序把数据和指令组合在一起,能够完成相应功能的程序. 软件分为两种: 系统软件:专门用户运行其他程序的平台.比如Linux.Windows.MAC等 应用软件:完成相 ...
随机推荐
- Anaconda安装
Anaconda安装时,不用单独安装python,直接安装anaconda里面就包含有对应版本的python以及各种python包,比如常用的pandas.matplotlib.numpy等.(作为一 ...
- Spark SQL,如何将 DataFrame 转为 json 格式
今天主要介绍一下如何将 Spark dataframe 的数据转成 json 数据.用到的是 scala 提供的 json 处理的 api. 用过 Spark SQL 应该知道,Spark dataf ...
- 基本的CRUD操作
导入包---实体类------数据库连接----数据库操作----service层数据操作----网页对service层可视化实现 model package com.ij34.model; publ ...
- selenium-配置文件定位元素(九)
原文链接:https://mp.weixin.qq.com/s?__biz=MzU5NTgyMTE3Mg==&mid=2247483802&idx=1&sn=3218e34b6 ...
- 【转载】FPGA 中的latch 锁存器
以下这篇文章讲述了锁存器的一些概念和注意事项.原文标题及链接: FPGA 中的latch 锁存器 - 快乐至永远上的博客 - 与非博客 - 与网 http://www.eefocus.com/liuy ...
- 局部敏感哈希(LSH)之simhash和minhash
minhash 1. 把文档A分词形成分词向量L 2. 使用K个hash函数,然后每个hash将L里面的分词分别进行hash,然后得到K个被hash过的集合 3. 分别得到K个集合中的最小hash,然 ...
- 记录基于VMware虚拟机, Linux7.2下外部主机访问配置
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
- OpenCV——图像处理入门:膨胀与腐蚀、图像模糊、边缘检测
全部外部依赖项: opencv_aruco341d.lib opencv_bgsegm341d.lib opencv_calib3d341d.lib opencv_bioinspired341d.li ...
- ELement-UI之树形表格(treeTable&&treeGrid)
先上图来一波 支持无限层级,支持新增子级时自动打开父级,支持编辑时自动打开父级,执行操作时自带动画效果,支持初始化时设置全部打开或者关闭,支持一键展开与关闭丝滑般的无延迟 由于基于el-table扩展 ...
- 软工+C(10): 团队项目[NABCD] - 对话式编辑
上一篇:助教指南,持续更新... 下一篇:从命令行开始逐步培养编程能力(Java) 动机(Motivation) Eating your own dog food, also called dogfo ...