我与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小写==

目录
相关文章
|
10月前
|
Java
【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字
【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字
54 0
|
10月前
|
小程序 Java 程序员
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
【Java探索之旅】我与Java的初相识(二):程序结构与运行关系和JDK,JRE,JVM的关系
98 0
|
10月前
|
分布式计算 Java 大数据
【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史
【Java探索之旅】我与Java的初相识(一):Java的特性与优点及其发展史
71 0
|
安全 Java 程序员
Java多线程学习笔记(二) 相识篇
Java多线程学习笔记(二) 相识篇
Java多线程学习笔记(二) 相识篇
|
14天前
|
存储 监控 Java
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
136 60
【Java并发】【线程池】带你从0-1入门线程池
|
3天前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
50 23
|
10天前
|
Java 调度
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
当我们创建一个`ThreadPoolExecutor`的时候,你是否会好奇🤔,它到底发生了什么?比如:我传的拒绝策略、线程工厂是啥时候被使用的? 核心线程数是个啥?最大线程数和它又有什么关系?线程池,它是怎么调度,我们传入的线程?...不要着急,小手手点上关注、点赞、收藏。主播马上从源码的角度带你们探索神秘线程池的世界...
75 0
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
|
25天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
98 14
|
1月前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
54 13
|
1月前
|
安全 Java 开发者
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。

热门文章

最新文章