Java初学篇——Java语言的发展,特性,基本配置

news/2024/11/23 0:24:46/

目录

ps:

 java的发展

java的特性

java技术体系平台

java的跨平台性

 JDK

介绍

安装

Java程序的编译和运行

流程

程序基本框架

一些小知识

注释

常用的转义字符

需要注意的小问题


ps:

        java算是我第二门系统学习的语言,同时也是我以后想要专精的编程语言。在写这篇文章时我正在学习JavaSe基础阶段,记下来我打算写一系列关于java学习的blog,目的是给自己加深印象以防边学边忘,同时也可以给其他正在学习或未来要学习java的朋友们一些帮助。

        JavaSE的学习大概会分为三个阶段:第一个是基础知识(这一部分和c语言语法很像),第二部分是面向对象编程,第三阶段是什么我也不知道(等学到这再做补充)。

注意哦,由于本人上一门系统学习的语言是c语言,而且java基础语法和c语言很相似,所以当java和c语言出现一模一样的语法知识我会直接跳过。 

文章参考 “ 韩顺平学java ” 的课程笔记。

 java的发展

java之父是Jame Gosling

java最早的名字叫做oak,但是由于和其他语言重名,后改为java

java之所以叫做java,最早是名为Mark Opperman的人提出,也许是他和同事喝咖啡得到的灵感

1995年,sun公司发布了java的第一个版本

2009年,甲骨文公司宣布收购sun公司

java的特性

java技术体系平台

java SE:标准版,此版本以前称为J2SE。支持桌面级应用的java平台,提供完整API。

java EE:企业版,此版本以前称为J2EE。为开发企业环境下的应用程序提供一整套解决方案。

java ME:小型版,此版本以前称为J2ME。支持java程序运行在移动终端平台(手机,PDA等),对javaAPI有所精简。

java的跨平台性

java源文件的文件后缀是.java,经过javac(java的程序编译器)编译过后产生的.class文件使得该文件可以在Windows、Linux、Mac操作系统都可以运行,这种跨平台性是通过不同操作系统不同的虚拟机JVM实现的。

那么,什么是虚拟机JVM呢?

JVM是一个虚拟计算机,对于不同操作平台有不同的JVM。JVM可以屏蔽底层运行平台差异,实现“一次编译,到处运行”。

 JDK

介绍

JDK=JRE+开发工具集(例如javac,java编译工具等等)

JRE=JVM+Java SE标准类库

JVM是虚拟机

如果指向运行开发好的.class文件,只需要JRE即可;如果要编写Java文件,就需要完整的JDK。作为程序员的我们当然是必须安装JDK的。

安装

直接在搜索引擎搜索“java”,点击进入java官网(图标是一杯咖啡),选择需要的版本下载安装即可。再详细的安装教程可以参考别的博客哦。

推荐安装版本:推荐使用java SE 8.0(1.8.0)版本,其次是9.0。这两个都是成熟版本,并且是使用最广泛的版本之一。最新的几个版本可能存在还不完全被一些框架支持的问题,有些框架可能就运行不起来;7.0及以前的版本又相对老旧。

Java程序的编译和运行

流程

1.编写java源代码,源码文件后缀是 . java。

2.通过 javac(java程序编译器) 将 . java 文件进行编译,生成一个 . class文件。

(java class文件为Java程序提供独立于底层主机平台的二进制形式的服务)

3.通过JVM运行 . class文件。

程序基本框架

//双斜杠是java的单行注释方法,跟c语言一样,多行注释方法也是跟c一样的public class Hello{    //表示Hello是一个public公有的类。文件名称必须与public类名称一致public static void main(String[] args){ //表示一个主方法,即程序入口。这条语句几乎是固定的System.out.println("hellow world");    //输出语句。注意每条语句后面加上;}
}class demo1{    //这是一个非public类//这个类中没有main方法System.out.println("I love dogs");
}class demo2{public static void main(String[] args){    //一个类可以有,但只能有一个main方法System.out.println("I love cats too");}
}/*注意
1.一个源文件最多只能有一个public类,其他类个数不限。
* 一个源文件也可以不含public类,如果一个源文件没有public类,那么文件将会选择任意一个类作为文件名称。但是这是不推荐的,因为在后续使用的时候有可能出错。
2.编译后,每个类都对应一个 .class,也就是说可能会生成不止一个 .class文件。
3.在同一个.java文件中可以包含多个类,每一个类中都可以有且仅有一个main方法,也可以没有main方法。
4.调用JVM运行代码,你把鼠标放到哪一个类,就可以单独运行哪个类。但是JVM 一次只能运行一个main方法。
*/

第一个public类几乎是固定的,类这种存在有点像是c语言中的函数,但是其使用又比c语言更加灵活。先浅浅了解一下即可,后面慢慢会习惯。

一些小知识

注释

单行注释

//单行注释

多行注释

/*
多行注释
*/

文档注释

/**
文档注释
*/

常用的转义字符

\t:制表位

\n:换行符

\\:一个\

\':一个'

\":一个"

\r:一个回车

这些转义字符主要是在输出语句中使用

需要注意的小问题

1.一个源文件有且只有一个public类,与文件名称一致。

类的规范命名:

是英文命名

首字母大写,后面字母小写

如果是多个单词组合,单词之间不能出现空格,每个单词首字母大写

2.语句后面要加分号;

3.不要用中文字符(全角字符) 。


本篇算是还没开始讲解java基本语法,请看下回讲解~


http://www.ppmy.cn/news/53804.html

相关文章

数据结构与算法(五):算法专项 Hash、BitMap、Set、布隆过滤器、中文分词、Lucene 倒排索引

算法专项 Hash、BitMap、Set、布隆过滤器、中文分词、Lucene 倒排索引 Hash 思考&#xff1a; 给你N&#xff08;1<N<10&#xff09;个自然数,每个数的范围为&#xff08;1~100&#xff09;。现在让你以最快的速度判断某一个数是否在这N个数内&#xff0c;不得使用已经…

P2224 [HNOI2001]产品加工(进程DP)

P2224 [HNOI2001]产品加工&#xff08;进程DP&#xff09; 一、问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 二、分析1、状态表示2、状态转移3、空间优化 三、代码 一、问题 题目描述 某加工厂有 A、B 两台机器&#xff0c;来加工的产品可以由其中任何一…

网络编程之简单socket通信

一.什么是Socket? Socket&#xff0c;又叫套接字&#xff0c;是在应用层和传输层的一个抽象层。它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。 socket分为流socket和数据报socket&#xff0c;分别基于tcp和udp实现。 SOCK_STREAM 有以下…

算法训练day4:栈与队列

那么我这里再列出四个关于栈的问题&#xff0c;大家可以思考一下。以下是以C为例&#xff0c;使用其他编程语言的同学也对应思考一下&#xff0c;自己使用的编程语言里栈和队列是什么样的。 C中stack 是容器么&#xff1f;我们使用的stack是属于哪个版本的STL&#xff1f;我们…

GPIO_Strapping管脚

在电子领域中&#xff0c;“Strapping”&#xff08;绑扎&#xff09;通常是指将芯片或器件的管脚&#xff08;引脚&#xff09;连接到特定的电源或信号以配置其功能或行为。这种技术通常用于集成电路或系统上的配置选项。 Strapping 管脚一般有以下几种用途&#xff1a; 功能…

Leetcode刷题日志3.0

目录 前言&#xff1a; 1.相对名次​​​​​​ 2.学生出勤记录 I 3.重塑矩阵 4.分糖果 5.最长和谐子序列 6.种花问题 前言&#xff1a; 今天我就分享一下最近在leetcode刷到的题&#xff0c;希望对大家有所帮助。编程语言&#xff1a;Python3。好了废话不多讲了&…

作为一名8年测试工程师,因为偷偷接私活被····

接私活 对程序员这个圈子来说是一个既公开又隐私的话题&#xff0c;不说全部&#xff0c;应该大多数程序员都有过想要接私活的想法&#xff0c;当然&#xff0c;也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题&#xff0c;似乎都在避嫌。就跟有人下班后…

【地铁上的设计模式】--创建型模式:单例模式(五)--枚举单例

什么是枚举单例 枚举单例是指使用枚举类型来实现单例模式&#xff0c;它是单例模式中最简单、最安全的一种实现方式。在枚举类型中定义的枚举值只会被实例化一次&#xff0c;即保证了全局唯一的实例&#xff0c;而且实现简单、线程安全、防止反射攻击、支持序列化等。 如何实…