JAVA从入门到入土(引入篇)

简介: 采用亲身经历写的Java之旅

JAVA是什么?为什么要学习使用JAVA?JAVA有什么突出的特色?这一连串的问号是我在上大学时刚学习到JAVA时产生的疑问,相信大家也会有些疑问。我在下面会结合我将近三年的Java开发经历进行解答。

初出茅庐

大学期间我的第一门程序设计语言就是JAVA,当然也学了网页设计,但是HTML严格意义上说不属于编程语言:smile:。当时正好遇上疫情爆发的时候,老师通过网上授课,当时我的第一印象就是这个语言有点意思,似乎和我头脑里的语言模式完全不同。我的印象是涉及语言方面基本就是:英语或日语。这两种语言在学习上多数在于背诵和积累,这些完全是像我这种理工男的噩梦。但编程语言与这些国际化语言完全不同之处在于,编程语言具有很强的逻辑性和规范性,每一步、每一个符号以及每一个变量名都是有明确的意义的。当然这也遵循算法的五大法则之一的确定性。对编程语言的学习不再是死记硬背的学习方法,取而代之的是理解与领悟。这一点上便给我一点好感度,其实更多原因在于好奇。好奇为什么输入一些代码后计算机就可以按照规则执行或者计算机如何分辨什么时候该执行什么时候不执行。兴趣来了,那脚步就挡不住了。

PIZP~`M~2CY2B`FF)OL8RUB.png

Java是什么

JAVA是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。Java按照应用领域分为三种分别是JavaSE(Java平台标准版)、JavaEE(Java平台企业版)、JavaME(Java平台微型版)。JAVA原本是sun公司进行研发与升级维护的,之后由于种种原因转到由Oracle(甲骨文公司)进行研发,Java最早出现可以追溯到1991年,之前用了 C++ 为基础。并把这种语言称为 “Oak”,后来改成Java语言。在岁月的不断更替中,Java也在进行改进与升级,如今已经更新到jdk 17了。Java主要由jdk组成,jdk是java的语言环境包,缺少了就无法进行程序编译运行,Java引以为傲的强大的可移植性其实在于jdk底层的jvm虚拟机,只需在不同的系统上安装对应版本的虚拟机就可以实现程序的正常运行。而jre提供了Java程序必需的运行环境,也就是一些类库。通过几大部件的相互作用,共同进行程序的.java文件的编译后产生后缀为.class的字节码文件,虚拟机在执行此字节码文件实行程序的运行。具体布局如下:

image.png

为什么要学习Java

在上述介绍Java中体现了Java的基本构成和一些简单的原理,这里我再来介绍为什么要学习和使用它。Java有很多特点,相比于编程语言的鼻祖C语言来说,它更加灵活。C语言更多的是偏向于底层系统或框架的开发,而Java应用领域特别广泛,如服务器程序,网站,嵌入式领域或者科学领域应用,在从前特别火的android领域就是Java大显身手的地方。Java摈弃了其他语言的难懂和复杂的地方,它是一门面向对象的编程语言,并引入三大理念:封装继承多态

很好的封装将会使整个程序降低冗余和维护成本。Java中讲究单继承多实现的原则,避免的多类之间相互继承而产生了高耦合度。最厉害的还要属Java的多态,多态的引入使Java更多灵活,可扩展性也大大提升了。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。这些理念的引入使Java的开发更加灵活与强大,能够在更多的领域涉足与发展。Java也是现代编程语言榜上位列前几的热门语言之一,这点也是毋庸置疑的。

Java有什么特色

Java的特色有很多,但是最突出在于它的高可移植性。从前C语言编写的程序如何换了个系统再进行编译可能就会出现各种各样的兼容性问题或者格式错误等杂乱的问题。但是Java不同,需要再对应系统下载对应版本的Java的虚拟机就可以进行运行,而且没有丝毫差别。其次是简易性,Java废弃了C语言等中引用的令人难懂的指针、内存地址控制、头文件引用等问题,采用更简单的引入和重构等方法使代码更加简洁与通俗易懂。其中最核心是面向对象的编程思想,它不同于C语言的面向过程的编程思想。Java中讲究万事万物皆对象,每个实体都可以看成一个对象来进行操作与设计,对象就必然会有一定的属性和行为,属性描述对象的特点,行为描述对象的功能,这种编程思想不仅通俗易懂而且使用非常高效,这也是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的理程碑。Java还有很强大的扩展性,Java编程多采用接口化开发,通过第三方插件实现Java的接口就可以实现功能的扩展与加强。一般在企业阶段开发一般会用到很多的第三方框架的支持,如Spring、mybatis等,这时候Java的强大的扩展性就完美体现出来了。Java还有支持多线程、高并发项目的开发。

感到枯燥

}PD747S3H23)}V9BNCG~_FG.gif

这也遵循了万事开头难的说法,期间有些人学习感到枯燥无味,这是因为没找到学习的乐趣所在。每学习一个技能都会经历三个阶段,第一阶段是:好奇心驱使让我们开始学习某项技能,第二阶段是:我们经历的挫折或者兴趣衰退,面临放弃。第三阶段就是:我们在学习中找到了学习的意义与乐趣,此时我们对学习的技能就会有一个更深层次的理解。我就拿我以前的办法来说,我当时在学习JAVA时,总是会做一些简单的程序来解决一些数学题或者一些实际问题。

还记得当初令我们头疼的数学题吗?如:1、一个空水池,一个管子出水,一个管子进水,问多久能注满水池?2、笼子里有一些鸡和兔子,笼子上有n个鸡和兔子,笼子下有m个脚,请问鸡兔各有几只?等等还有很多的此类问题。但是我们现在学习了Java我们就可以用我们的知识来解决问题。就拿鸡兔同笼问题来说,我们需要解决此类问题很简单,知道了头数和脚数,使用循环就可以筛选出来鸡和兔子各有几只?

//鸡兔同笼,鸡兔一共35只,笼子里脚一共94只,请问分别有多少只兔子和鸡?intfoot=94;//鸡兔一共94只脚intsum=35;//鸡兔一共35只for (intchicken=1; chicken<=foot/2; chicken++) {//鸡的数量intrabbit=sum-chicken;//兔子的数量if(rabbit*4+chicken*2==foot){
System.out.println("兔子有"+rabbit+"只");
System.out.println("鸡有 "+chicken+"只");
            }            
        }

问题就轻松的化解了,这也体现出来编程语言的强大的魅力之处。

总结

每个技能或语言的学习都是学无止境的,时代在进步,科技在发展,万事万物都在更替。我们不可以止步于某个阶段的学习,单从Java这些的发展与迭代来看,我们就需要一个“活到老,学到老”终生学习的理念,与时代同进,在互联网行业的浪潮中贡献出自己的力量。


相关文章
|
9月前
|
开发框架 前端开发 安全
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
125 0
|
9月前
|
存储 Oracle Java
Java基础知识点:入门篇(一)📚
【2月更文挑战第4天】
64 1
|
前端开发 Java Android开发
Java Web应用开发案例|Hello项目
Java EE 8规范包含的Servlet版本是Servlet 4.0,这与Java EE 7包含的Servlet 3.1相比有了很多变化。 Servlet的核心定位就是控制器,在MVC架构和AJAX架构中,Servlet都占据着核心位置。可以肯定地说,在Java EE 8的所有组件中,Servlet最为重要,其他如JSP、Applet、EJB等组件的重要性都不如Servlet。
145 0
Java Web应用开发案例|Hello项目
|
存储 Java
【JavaSE】Java(五十五):核心要点总结
1. 为什么不允许静态方法访问非静态变量 在Java中,静态方法属于类级别的方法,它不依赖于任何实例对象,只能访问类变量(即static修饰的变量)和其他静态方法。而非静态变量是实例级别的变量,需要通过实例对象才能访问。
|
Java 编译器 索引
【JavaSE】Java(五十一):核心要点总结
1. String str = “love”; 和 String str = new String("love);一样吗? 这两种方式都可以用来创建一个 String 类型的对象,但是有所不同。 第一种方式:String str = “love”; 是直接赋值的方式来创建 String 对象。在编译代码时,Java 编译器会为你自动创建一个 String 对象,并将 “love” 这个字符串赋值给它,这种方式也称为字符串字面量(String Literal)。此外,Java 在编译过程中还对相同的字符串进行了常量池优化,使得字符串字面量的复用更加高效。
|
存储 算法 安全
【JavaSE】Java(五十七):核心要点总结
1. HashMap 的实现原理 HashMap 是一种基于哈希表的数据结构,它的实现原理简单来说就是将键值对存储在一个数组中,并通过哈希算法计算出每个键对应的下标。下面是 HashMap 实现原理的具体步骤: 初始化:创建一个长度为 n 的数组(初始默认长度为 16),该数组每个位置可存放一个链表;以及一个负载因子(load factor),用来表示哈希表允许填充的程度。
|
存储 安全 算法
【JavaSE】Java(五十六):核心要点总结
1. byte 类型 127 + 1等于多少 当byte类型的值超出它的范围时,它会发生溢出并且变为负数。在Java中,byte类型是一个8位有符号整数,取值范围为-128到127。 因此,在进行 byte 类型 127 + 1 的操作时,由于它已经超出范围了,所以结果会发生溢出,并变成 -128 (即计算结果是 (byte) (127 + 1) = -128)
|
存储 缓存 Java
【JavaSE】Java(五十三):核心要点总结
1. 简要说下什么是反射 Java反射是指在运行时获取类信息,包括类的各个成员变量、方法和构造函数等信息,并可以通过这些信息调用对象的方法或创建对象。通俗点说,反射就是程序在运行时检查一个类、获取该类的属性和方法信息,然后利用这些信息操作该类。
|
存储 Java 编译器
【JavaSE】Java(五十):核心要点
1. JDK 和 JRE 有什么区别 JDK(Java Development Kit)和 JRE(Java Runtime Environment)是两个不同的软件包。它们共同提供了 Java 开发和运行时环境,但在功能和用途上存在一些区别。 JRE 包含 Java 运行时环境,它只用于执行 Java 应用程序,而没有提供任何开发工具。JRE 包括 JVM(Java 虚拟机)、Java 标准类库、Java 插件等组件,用户可以利用 JRE 去运行已经编写好的 Java 应用程序。 JDK 则是 Java 开发工具包,它除了包括 JRE 中的组件外,还提供了一系列的开发工具,例如编译器 j
|
缓存 Java 程序员
谈一谈|JAVA入门简介
谈一谈|JAVA入门简介
89 0