首页 > 编程语言 >Java从认识到了解

Java从认识到了解

时间:2024-12-26 18:55:41浏览次数:7  
标签:Java 操作系统 认识 C语言 面向对象 了解 开发 笔者

这里先介绍一下Java,Java是一种面向对象的编程语言,笔者认识和了解的第一个编程语言是C语言,这里就以C语言和Java的区别谈一谈对Java的认识和了解。

认识和了解是感知事物的两个层面,显然,对于编程语言来说,认识和了解相对于熟悉和精通又是两个级别,笔者只停留在认识和了解的两个层面,所以,不敢在这里肆意妄为,夸夸其谈,只做简单的比较,层层递进,对新手村的编程新手提一些建议和分享。

对于C语言来说,笔者学习了数组、函数、指针、结构体,还有动态内存分配,以及C库函数等知识。C语言采用了面向过程的开发方式,认为编程的重心应该是函数和功能的实现,比较侧重于算法,即怎么实现一个功能。举个例子,求三角形的重心。这很简单,直接定义三点坐标,套用重心坐标公式即可获得,然后对函数命一个名即可,而学了结构体后,可以对坐标用结构体表示出来,然后在函数里面使用即可。

后来,随着学科的增多,笔者认识了Java,它是一种面向对象的编程语言,什么是面向对象呢,这里的对象就是一个具体的事物,如一张桌子,一个人,一只动物等等,这有什么值得研究的呢,很多,比方说一个人,这个人属于什么群体,什么性别,出生日期,做什么职业等,也就是说这个人具备哪些信息特征,我们都可以用一个类来表示,对事物的分门别类是一种全新的认知过程,Java正式在这种认知过程之上产生的。比如说,上面的求重心的函数,在Java中,它是一个方法,这个方法位于三角形类中,由于每个三角形都有重心,所以,使用Java编程时首先定义一个三角形类。这个三角形类中定义了顶点坐标,然后再重心计算方法中使用这几个顶点坐标。

从上面的两个段落看来,Java的编程重心转移到了定义类,而不是函数实现。当然,Java对这两部分都做了改进和升级。提出了,封装、继承和多态等高级知识。促进了编程语言的发展。

笔者,了解Java的时候对Java的图形界面非常感兴趣,然而Java的图形界面开发是一个失败的探索过程,这里不做介绍。

下面对C语言和Java的区别和联系做一些简单的整理:

1、从开发方式来看

C语言的开发方式比较传统,是面向过程的,Java的面向对象的开发方式比较具有优越性、简单性和易于理解性。Java综合了面向过程和面向对象两种方式,其中主要是面向对象。从开发方式上来看,Java好像具备了划时代的意义。

2、从运行平台和模式上来看

C语言主要是运行在操作系统上,也就是说C语言依赖于操作系统,并且是一种解释型语言(边编译边执行),而Java不依赖于操作系统,运行于Java虚拟机上,是一种编译型语言(一处编译,到处执行),这叫跨平台特性。这样传统的C语言实现的软件对于不同的操作系统上,不好维护,且开发过程中开发人数较多,因为对不同的操作系统要重新开发。从运行平台和模式上来看,Java拥有运行速度快,便于维护,跨平台上。

3、从业务能力上来看

C语言主要用c/s开发模式,适合做客户端,当开发完成后,部署到应用市场上后,需要用户手动更新,而Java则主要为服务器而生,适合b/s开发模式,C语言适合开发系统软件、工业软件、以及嵌入式。Java适合应用软件,尤其是需要服务端的,比如商业上的购物商城、云课堂、企业官网等,这些需要针对特定用户群体需求的应用一般都采用Java做服务端。从业务能力上看,C语言和Java旗鼓相当,各有不同。

4、从优势上来看

C语言的优势是与特定的操作系统上应用软件进行了绑定,如office软件、各种图形化处理工具,这些软件需要在相应操作系统的应用市场上才能找到和安装,比较适合专业的用户群体。而Java的优势是跨平台性,提供相应的服务接口即可在装有Java虚拟机的平台上使用和维护。它们各有自己的优势,而针对的群体不同。

一些对新手的建议:

1、复制粘贴

笔者了解到Java的时候,是一种怎样的体验呢,首先是思维的转变,面向对象!然后就是各种编,单独的Java应用程序(mian方法启动)开发的不多,大多都是网页开发写Java服务端。所以给出的建议是复制粘贴,首先要具备看懂方法体的能力,修改代码的能力

2、配合数据结构

笔者了解(进阶)Java的时候,就有一本书是Java语言程序设计进阶篇,俗称数据结构,虽然在服务端开发很少用到数据结构,Java也封装了集合框架,但数据结构一定得会。

3、多了解和熟悉第三方开源库

Java的发展离不开第三方开源库,很多功能都已被实现的差不多了,不需要重复造轮子,只需复用相应的解决方案即可,同时Java的开发模式也基本定型,如果不是高级工程师,基本的第三方开源库已经够用了。

4、回归C语言

也许这个建议会被嘲讽,但怎么说呢,aparche的Tomcat想必都是知道的,它们也有C语言代码的(我猜的),所以,总之C语言是不能忘记的。

最后,笔者把了解到Java知识点整理出来,分享一下:

1、字符串

基本上,每种语言都封装了字符处理程序,Java的基本类库里面有字符串类。使用起来比较方便

2、数学函数库

Java的数学函数库位于base包下,字符串和Math类都不需要引入,它是自动载入的。

3、文件、流与异常

文件读写和流处理是Java中比较难的编程,好在Java服务器开发过程中已经有成型的开源库。另外,异常相对来说比较复杂,各种异常都有各自的处理方法。

4、集合框架

集合框架封装了对数组的操作,相对来说也比较简单,包含了对数据结构中的链表、规则集的hash的封装。

5、日期与时间

日期时间类与集合框架同属于工具集,位于util包下,是专门处理日期时间处理类。

6、注解与反射

多了解或许有所帮助,但用处笔者也不知道怎么用。

7、GUI

图形用户开发接口,位于awt,swing包下,提供了图形界面需要的控件和布局类,不过Java好像没有维护了。

8、打包与解压

位于util.zip包下,提供了打包和解压的文件的功能。

9、网络、NIO、多线程

笔者表示很少使用(无奈、难懂、深奥、复杂)

10、设计模式

一笔带过(熟悉级别的程序员的进阶宝典)

10、第三方开源库

spring、mabatis(就知道这两个)

标签:Java,操作系统,认识,C语言,面向对象,了解,开发,笔者
From: https://blog.csdn.net/2402_89594624/article/details/144750766

相关文章

  • Java识别图片二维码
    方法一:ZXing使用ZXing识别,可以返回二维码识别内容,还可以找到二维码的位置坐标。1、引入依赖implementationgroup:'com.google.zxing',name:'core',version:'3.5.3'implementationgroup:'com.google.zxing',name:'javase',version:�......
  • 押题率高达97%!Java面试突击八股文,五面阿里终拿下!!
    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、 美团、 滴​​​​​​滴、头条等大厂面试大全,其中概括的知识点有:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitM......
  • Java中使用redis作为消息队列
    Java中使用redis作为消息队列使用redis作为消息队列在Java中使用Redis作为消息队列,可以通过Redis的List​数据结构或者Pub/Sub​模式来实现。以下是一个简单的示例,展示了如何使用Redis的List​作为消息队列。1.使用Redis的List作为消息队列Redis的List​数据结构非常适合用来......
  • 纯JS加密+时间校验(没引用任何框架),Java解密
    1、JS加密functioncaesarEncrypt(text,shift){ letstr="G7bCk1Xf2A9qLmJ0pVrTz5D4oS6wEhN"+Date.now().toString(); returnstr.split('') .map(char=>String.fromCharCode(char.charCodeAt(0)+3)) .join('');}2、Java校验......
  • Java重要面试名词整理(五):Redis
    文章目录Redis高级命令Redis持久化RDB快照(snapshot)**AOF(append-onlyfile)****Redis4.0混合持久化**管道(Pipeline)**StringRedisTemplate与RedisTemplate详解**Redis集群方案gossip脑裂RedisLuaRedisMultiLockRedis红锁缓存相关问题**缓存穿透****缓存失效(击穿)****......
  • 农家乐系统|Java|SSM|VUE| 前后端分离
                 【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务器:SpringBoot自带apachetomca......
  • 企业销售人员培训系统|Java|SSM|VUE| 前后端分离
                  【技术栈】1⃣️:架构:B/S、MVC2⃣️:系统环境:Windowsh/Mac3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7+4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html5⃣️数据库可视化工具:navicat6⃣️服务器:SpringBoot自带apacheto......
  • 想到了个童年小游戏,2个人4只手就能玩,简单用JavaScript实现一下
    /** *规则:双方各有左右2个数,初始值为1。每回合,可以将自身的一个数与对方的一个数相加,然后模10。 *如,第一回合你操作:你(11)机器人(11)-->你(12)机器人(11) *下回合机器人操作:你(12)机器人(11)-->你(12)机器人(13) *第三回合你操作:你(12)机器人(13)-->你(15)机器人(13) *......
  • 【Java并发】读写锁ReadWriteLock
    目录什么是读写锁什么时候使用读写锁怎么使用读写锁 使用步骤1.创建 ReentrantReadWriteLock实例2.获取读锁和写锁3.锁和解锁完整代码使用读写锁的注意事项什么是读写锁ReadWriteLock是Java并发包(java.util.concurrent.locks)中提供的一种锁机制,旨在......
  • 第1章 初识Java与面向对象程序设计
    2024021504831.1Java概述1.1.1计算机编程语言发展史历经了三个发展历程:第一代计算机编程语言:机器语言:是微处理器理解和使用的语言,用于控制它的操作二进制代码。第二代计算机编程语言:汇编语言:采用英文单词作为指令来编写程序,这意味着不去记忆那些枯燥的0和1也可以写出一......