Java学习:Java语言概述

一、 Java语言概述

  • 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。
  • 是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。
  • 随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
    后台开发:Java、PHP、Python、Go、Node.js

1.1 应用领域

从Java的应用领域来分,Java语言的应用方向主要表现在以下几个方面:

  • 企业级应用:主要指复杂的大企业的软件系统、各种类型的网站。Java的安全机制以及
    它的跨平台的优势,使它在分布式系统领域开发中有广泛应用。应用领域包括金融、电
    信、交通、电子商务等。
  • Android平台应用:Android应用程序使用Java语言编写。Android开发水平的高低很大程度上取决于Java语言核心能力是否扎实。
  • 大数据平台开发:各类框架有Hadoop,spark,storm,flink等,就这类技术生态圈来讲,还有各种中间件如flume,kafka,sqoop等等 ,这些框架以及工具大多数是用Java编写而成,但提供诸如Java,scala,Python,R等各种语言API供编程。
  • 移动领域应用:主要表现在消费和嵌入式领域,是指在各种小型设备上的应用,包括手
    机、PDA、机顶盒、汽车通信设备等。

1.2 主要特性

  • Java语言是易学的。 Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
  • Java语言是强制面向对象的。 Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。
  • Java语言是分布式的。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnectionSocket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  • Java语言是健壮的。 Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。
  • Java语言是安全的。 Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。如:安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查。
  • Java语言是体系结构中立的。 Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
  • Java语言是解释型的。 如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统的解释器中运行。
  • Java是性能略高的。 与那些解释型的高级脚本语言相比,Java的性能还是较优的。
  • Java语言是原生支持多线程的。 在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。

1.3 运行机制及运行过程

Java语言的特点
特点一: 面向对象

两个基本概念:类、对象
三大特性:封装、继承、多态

特点二: 健壮性

吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),
提供了一个相对安全的内存管理和访问机制

特点三: 跨平台性

跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。
“Write once , Run Anywhere”
原理:只要在需要运行 java 应用程序的操作系统上,
先安装一个Java虚拟机 (JVM Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

Java两种核心机制
一:Java虚拟机
在这里插入图片描述

在这里插入图片描述
二:垃圾回收
在这里插入图片描述

1.4 开发体验

步骤:

  • 将 Java 代码编写到扩展名为 .java 的文件中。
  • 通过 javac 命令对该 java 文件进行编译
  • 通过 java 命令对生成的 class 文件进行运行
    在这里插入图片描述
    第一个Java程序
public class Text{
    
    
	public ststic void main(String[] args){
    
    
	System.out.println("Hello World!")l
	}
}
>>Hello World

小结第一个程序

  • Java源文件以“java”为扩展名。源文件的基本组成部分是类(class),如本例中的HelloWorld类。
  • Java应用程序的执行入口是main()方法。它有固定的书写格式:
    public static void main(String[] args) {…}
  • Java语言严格区分大小写。
  • Java方法由一条条语句构成,每个语句以“;”结束。
  • 大括号都是成对出现的,缺一不可。
  • 一个源文件中最多只能有一个public类。其它类的个数不限,如果源文件包含一个public类,则文件名必须按该类名命名。

1.5 Java API

  • API (Application Programming Interface,应用程序编程接口)是 Java 提供
    的基本编程接口。
  • Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的API文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。
  • 下载API:
    https://docs.oracle.com/javase/8/docs/api/index.html
    在这里插入图片描述

常用API总结
https://blog.51cto.com/u_15067223/4843315?articleABtest=1

复习与作业

1. java语言的特点是什么?

面向对象性: 两个基本概念:类、对象;三大特性:封装、继承、多态
健壮性: 吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
跨平台性: 通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Write once , Run Anywhere”

2. System.out.println()和System.out.print()什么区别呢?

以下代码的运行效果是什么?
System.out.println();打印完后,会换行。
System.out.print();打印完后,不会换行。

3. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?

可以。但最多只有一个类名声明为public,与文件名相同。

4. Something类的文件名叫OtherThing.java

class Something {
    
    
    public static void main(String[] something_to_do) {
    
            
        System.out.println("Do something ...");
    }
}

正确。从来没有人说过Java的class名字必须和其文件名相同。但public class的名字必须和文件名相同。

5.为什么要设置path(或者说,设置path的目的是什么)?

目的是为了在控制台的任何文件路径下,都可以调用jdk指定目录下的所有指令。

6.JDK,JRE和JVM的关系是什么?

JDK包含JRE,JRE包含JVM.
JDK=JRE+java的核心开发工具
JRD=JVM+JAVA核心类库
在这里插入图片描述

7.源文件名是否必须与类名相同?如果不是,那么什么情况下,必须相同?

在一个java源文件中可以声明多个class。但是,只能最多有一个类声明为public的。
而且要求声明为public的类的类名必须与源文件名相同。

8.GC是什么? 为什么要有GC?

GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,
忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

9.垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。
当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。

10.编写代码输出心形。

class PrintHeart1 {
    
    
	public static void main(String[] args) {
    
    

		System.out.print("\t" + "*" + "\t\t\t\t\t\t\t\t\t\t\t\t" + "*" + "\t" + "\n");
		System.out.print("*" + "\t\t" + "*" + "\t\t\t\t" + "I love Java" + "\t\t\t\t" + "*" + "\t\t" + "*" + "\n");
		System.out.print("\t" + "*" + "\t\t\t\t\t\t\t\t\t\t\t\t" + "*" + "\t" + "\n");
		System.out.print("\t\t" + "*" + "\t\t\t\t\t\t\t\t\t\t" + "*" + "\t\t" + "\n");
		System.out.print("\t\t\t" + "*" + "\t\t\t\t\t\t\t\t" + "*" + "\t" + "\n");
		System.out.print("\t\t\t\t" + "*" + "\t\t\t\t\t\t" + "*" + "" + "\t" + "\n");
		System.out.print("\t\t\t\t\t" + "*" + "\t\t\t\t" + "*" + "" + "\t\t" + "\n");
		System.out.print("\t\t\t\t\t\t" + "*" + "\t\t" + "*" + "" + "\t\t" + "\n");
		System.out.print("\t\t\t\t\t\t\t" + "*" + "\n");

	}

}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_52357829/article/details/129226383
今日推荐