我与java的第一次相识

简介: 我与java的第一次相识

@TOC

一、java语言概述

1.java是什么?

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.
不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合

2.java语言的重要性

1. 语言广泛使用程度
下图数据来自于TIOBE编程语言社区2022年7月最新的排行榜,常年占据语言排行榜榜首,是
近些年最火的编程语言之一。
在这里插入图片描述
2.工作领域

1.Java技术可以做网站开发
Java在电子商务领域以及网站开发领域,开发人员可以运用许多不同的框架来创建web项目。比如淘宝、京东、58等电子商务平台;应用平台、管理系统,如钉钉,CRM系统,ATM取款系统,医药管理系统等;游戏平台,非常多的手游都是由java开发的,还有一系列网游的统计数据;一些电子智能产品,如电视、空调、冰箱、汽车配件等。

2.Java技术可以开发软件
Java的应用广泛,而且安全性也是比较高的,很多企业在应用开发版块采用的技术都是Java技术,比如OA、邮箱、股票、金融、考试、物流、医疗、矿山等信息方面的系统。许多常用的软件和开发工具都是运用Java来编写和开发的。比如Eclipse、IneteliJIdea和Netbans IDE。

3.Java可技术以做Android
大家对Android早已熟悉,Android是一种基于Linux的自由及开放源代码的操作系统,其源代码是Java,所以大家现在可以看到很多手机操作系统例如MIUI都是通过修改源代码实现的。Java做安卓不单单是指系统,还有APP对于更多的开发人员来说,他们更多的时间是花在开发APP上面。

4.Java技术可以开发游戏
相信很多朋友都是比较喜欢玩游戏的,现在我们所用安卓系统的智能机,那些手机游戏大部份都是用Java开发的,就连这安卓的系统也有Java语言的身影,当然除了手机游戏之外,还有我们在电脑上所玩的游戏,有些也是Java所编写开发出来的,所以如果大家想要从事游戏开发行业的话可以选择学习Java技术作为切入点。

5.Java技术可以做嵌入式领域
Java 在嵌入式领域发展空间很大。在这个平台上,你只需130KB就能够使用 Java 技术。Java 被设计用来在嵌入设备上工作。事实上,这只是其中的一个领域,这只是当初的“一次写入,随便畅游”的项目,现在看起来是这样了。

6、Java技术可以做交易系统
第三方交易系统,现已是金融服务产业的一个很大的部分,它们同样也是Java编写。例如受欢迎的交易平台Murex,它也是Java编写,并与许多的银行前台所连接,提供服务。

7、大数据技术
Hadoop以及其他大数据处理技术都是用Java或者其他,例如Apache的基于Java的HBase和Accumulo以及ElasticSearchas。但是Java在此领域并未占太大空间,但只要Hadoop和ElasticSearchas能够成长壮大,Java 依旧还有潜力去在这个市场占据一部分。

8、服务器程序
Java在金融服务业的应用非常广泛。很多第三方交易系统、银行、金融机构都选择用Java开发。Java较安全,大型跨国投资银行用Java来编写前台和后台的电子交易系统、结算和确认系统,数据处理项目以及其他项目。Java被用在服务器端开发,从一个服务器上一级接收数据,处理后发向另一个处理系统。

9、科学应用
Java在科学应用中是很好选择,包括自然语言处理。Java相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。
3.校招中的要求
在这里插入图片描述
在上述招聘信息中我们可以看到,校招中比较看重学生的基础:语言,数据结构/算法,操作系统,计算机网络,数据库等

3.java语言发展史

java之父,James Gosling(詹姆斯-高斯林)博士,1995年5月以java的名称正式发布,并提出"Write once,Run anywhere".

Java之父
在这里插入图片描述
在这里插入图片描述

3.java语言特性

1.简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持goto语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
2.面向对象
Java是一个面向对象的语言。对程序员来说,这意味着要注意其中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。
Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。
3.分布性
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
网络变成软件应用的分布运载工具。Java程序只要编写一次,就可到处运行。
4.编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
5.稳健性
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。
异常处理是Java中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用try/catch/finally语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。
6.安全性
Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。Java运行系统使用字节码验证过程来保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。例如,装载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它自己的版本来代替标准Java类。
7.可移植性
Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。
8.高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
9.多线程性
Java是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。
Java的线索支持也包括一组同步原语。这些原语是基于监督程序和条件变量风范,由C.A.R.Haore开发的广泛使用的同步化方案。用关键词synchronized,程序员可以说明某些方法在一个类中不能并发地运行。这些方法在监督程序控制之下,确保变量维持在一个一致的状态。
10.动态性
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。

4.java开发环境的安装

Windows下最简单的java环境配置指南

二、初始java HelloWorld

1.第一个程序

代码如下(示例):

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}

在这里插入图片描述

一个java程序由以下三部分组成:
1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。
2.类:类中带有一个或多个方法。方法必须在类的内部声明。
3.方法:在方法的花括号中编写方法应该执行的语句。
==总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。==

注意:一个源文件中只能有一个public修饰的主类,并且类名和文件名保持一致

2.运行第一个java代码

java是一门半编译型,半解释性语言。先通过javac编译程序,生成.class是由字节码组成的和平台无关,面向JVM(java virtual machine),最后启动java虚拟机来运行.class文件,此时JVM会将字节码转换成平台能够理解的形式来运行。

在这里插入图片描述
具体流程
1.编写java源文件
2.使用javac.exe编译器编译java源程序,生成xxx.class字节码文件.
3.使用java运行xxx.class字节码文件

图示如下(示例):
1.写好java源文件
在这里插入图片描述
2.编译源文件
在这里插入图片描述
3.生成字节码
在这里插入图片描述
4.JVM运行程序
在这里插入图片描述
在运行之前一定要安装好JDK(java development kit)java开发工具包.

3.经典面试题

JDK,JRE,JVM三者之间的关系?

1.JDK(java development kit):java开发工具包,提供给程序员使用,包含了JRE,同时还包含了编译器javac和自带的调试工具console等.
2.JRE(java runtime environment)java运行环境,包含了JVM,java基础类库,是编写程序运行时所需的环境
3.JVM:java虚拟机,运行java代码

在这里插入图片描述
编写和运行第一个Java程序,可能遇到的错误:
==1.源文件后缀不是.java==
==2.主类名与文件名不一致==
==3.main方法名写成mian==
==4.主类名没有加public修饰==
==5.方法中语句没有以分号结尾==
==6.中文格式的分号==
==7.JDK环境未配置成功==
==8.String[ ]中的s小写==
==9.输出语句中System的s小写==

目录
相关文章
|
7月前
|
Java
【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字
【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字
43 0
|
7月前
|
小程序 Java 程序员
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
75 0
|
7月前
|
分布式计算 Java 大数据
【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史
【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史
56 0
|
安全 Java 程序员
Java多线程学习笔记(二) 相识篇
Java多线程学习笔记(二) 相识篇
Java多线程学习笔记(二) 相识篇
|
20天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
11天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
6天前
|
监控 Java 开发者
深入理解Java中的线程池实现原理及其性能优化####
本文旨在揭示Java中线程池的核心工作机制,通过剖析其背后的设计思想与实现细节,为读者提供一份详尽的线程池性能优化指南。不同于传统的技术教程,本文将采用一种互动式探索的方式,带领大家从理论到实践,逐步揭开线程池高效管理线程资源的奥秘。无论你是Java并发编程的初学者,还是寻求性能调优技巧的资深开发者,都能在本文中找到有价值的内容。 ####
|
11天前
|
安全 Java 开发者
Java中的多线程编程:从基础到实践
本文深入探讨了Java多线程编程的核心概念和实践技巧,旨在帮助读者理解多线程的工作原理,掌握线程的创建、管理和同步机制。通过具体示例和最佳实践,本文展示了如何在Java应用中有效地利用多线程技术,提高程序性能和响应速度。
41 1
|
19天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
40 6
|
19天前
|
Java 开发者
Java多线程编程的艺术与实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的技术文档,本文以实战为导向,通过生动的实例和详尽的代码解析,引领读者领略多线程编程的魅力,掌握其在提升应用性能、优化资源利用方面的关键作用。无论你是Java初学者还是有一定经验的开发者,本文都将为你打开多线程编程的新视角。 ####