JAVA个人理解

  为了找到别人写的好文章,先分享下自己的知识,找找感觉路线。

  学java前接触的c,后来转向java。第一个照面理解的就是面向对象,没想到让我想了好多年。当时有个负责任的老师说面向对象这个词具体释义众说纷纭,有自己的理解就好。于是java从开始就和高深神秘的“面向对象”挂钩。

  里边的逻辑和其它编程逻辑差不多,表达同一些意思。至于java的核心,异常、继承、接口,没怎么用过,知道是用来做什么的,看上去还是让人觉得很麻烦,不是很懂。

  很多语言也可以做到这些,只是在java里是不得不这样做,它规定了机制,限制了朝其它路线散蔓。我对java的理解一直停留在培训班阶段。接口异常继承这些东西多都被写进了框架里,用的时候直接按照要求用框架,不会自己去考虑这些东西。

  我觉得语言是一个定量的承载平台,也就是它能承载的逻辑紧密度是一定的。开发程序的时候不能过多去修整逻辑,因为你逻辑好了,java本身也承受不起。java有自身的逻辑水平。所以开发时候有一个逻辑平衡,所用的逻辑水平应该在java水平之内,超过了就头痛了,想去钻底层。

  软件是有需求的,java的逻辑足够应对这些需求,于是就用着。就像搭房子,能用木头支撑的就不用铁的。

  很多时候在语言世界里徘徊,觉得那么多遗漏没人补,下层世界显得不透明,真正操作起来的时候不知道自己在做什么,就像背书一样不是在理解东西,只是把背诵过来的内容贴出来,用到逻辑思考的部分很少。

  之后框架越来越庞大,又更依赖于框架,毕竟里边包含了很多别人已经写好的处理逻辑,我自己不懂那些底层只能拿来用,可是至于对效率上的理解,只能通过大项目多了建立一些直接的感官,也就是靠感觉来判断。这样背诵那么多东西到能有感觉的时候,是一个很头痛的过程,枯燥和忍耐。

  我觉得代码里有很多好玩的东西,当把一些繁琐的内容介绍清洁了就可以。外文的缘故,不能直接看原代码手册,翻译出来的总是让人不理解,就像面向对象这个词,谁能在一接触的时候就知道是个什么鬼东西。

  英文里object observed programming,站在object的角度上进行观察的编程方式,也解释不出来的样子,如果懂英文的话就容易理解多了。

  学来的东西经过了一个翻译的过程,就像传输掉帧了一样,本来清晰易理解的画面被弄得找不到北,只能片段式地死记硬背。

  很少有负责任的人在做java,升到高端没有一个诚实探索的心,传教出来误导人。以前的老师还会谦虚一点,知道自己的水平不够。现在的老师还没有以前的水平高,却说自己到顶了。

  现在很多都用java开发程序,虽然它本身很慢很卡,可是却易读易用,而且稳定。刚开始学编程的时候,java主要是给银行这些行业用的,讲究稳定性而不讲究速度,现在到处都用了。

  

  java讲究封装,它自身就是一个对底层很好的封装。只是当考虑到系统性能问题的时候,并不能通过java学到太多东西,都被那些英文装了起来。这样的话就不容易理解程序的运转逻辑,不容易理清为什么要有这些东西,只能通过需求反过来理清思路。就像断了的知识块,需要绕过去绕到很远以后,忽然有一天可以回过头来发现为什么要有那条直线,可是下次走还是要绕弯,因为那部分逻辑还是断块的。知道为什么有,仍然不知道怎么来的,都被java封装了起来。

  或者被使用的框架封装了起来,而对于框架的理解,我所见之人都是在理解框架上,赞叹框架的好,没人在说框架有多么差、走偏进哪条路线、只能适用于什么,这种情况很让人担忧。

  

  java里不用使用太多的特殊字符,就那些东西显得平板简单,特殊字符都被另向封装到英文里。出了程序框就出了生命周期,被回收机自动回收。显得很便捷,不用考虑太多东西。

  所有对底层的应用都被封装到固定jar包中,知道怎么使用就可以了,不需要知道被连接的底层实际是如何建立连接的,需要哪些验证、传输环节、断带续连机制。

  

  框架却把java作为底层封装了起来,所以使用框架离java自身也远了一步。框架一换新,原来背诵的东西显得没有用处,成了底层工作的人,还没等熟悉框架可以走到上层,框架就换掉了,一直被压在底层。

  自己学习,谈何容易,过滤掉太多普通工作的人。环境基数小了,走出了框架也走不到上层。

  有时我想去换另一种语言,发现太繁琐,想想还是没有java好用。让人排斥的或许只是那些框架,不是java语言本身,它本身还是封装了很多复杂的底层,再也不需要去理会,有专门的人负责。

  至于框架,我觉得它是语言自身的逻辑(编辑出来的),如果可以尽量不要去用他们,给自己一个可以思考和成长的空间。

时间: 2024-10-07 19:59:32

JAVA个人理解的相关文章

C++的.h和.cpp根据java来理解

因为要学习cocos2dx所以要学习c++开发然后在学习中看到.h 和 .cpp文件. .h文件进行接口定义,没有具体的实现.很明显跟java的interface一样的作用. .cpp文件是具体的代码实现.跟java类比就是具体的类实现上面定义的interface的类. 这种.h 和.cpp的方式是Opp编程体现吧. 用.h 和 java 用interface都拥有的好处: 抽象逻辑,抽象出层次,方便理解和维护代码.如果做对外开放api,对外可以公布接口,保留代码.这样做比较迅速快捷. 用接口抽

Java深度理解——Java字节代码的操纵

导读:Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展.但是对于 Java语言的深度理解和运用,毕竟是很少会有人涉及的话题.InfoQ中文站特地邀请IBM高级工程师成富为大家撰写这个<Java深度历险>专栏,旨在就Java的一些深度和高级特性分享他的经验.在一般的Java应用开发过程中,开发人员使用Java的方式比较简单.打开惯用的IDE,编写Java源代码,再利用IDE提供的功能直接运行 Java 程序就可以了.

Java多态性理解

Java多态性理解 Java中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 多态的作用:消除类型之间的耦合关系.

从Java视角理解CPU缓存(CPU Cache)

从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢一点儿. 由于内存的发展都到技术及成本的限制, 现在获取内存中的一条数据大概需要200多个CPU周期(CPU cycles), 而CPU寄存器一般情况下1个CPU周期就够了. CPU缓存 网页浏览器为了加

Java IO 理解流的概念

Java IO 理解流的概念 @author ixenos 在理解流时首先理解以下概念 1.流的来源和去向一般在构造器指出 2.方法中的形参一般是将流输出到某个位置,读取时从流读出数据(来自流)送到位置上,输出时将所要输出的数据(来自我)送到位置上

【Java】理解 UDDI 注册中心的 WSDL

如何发布和查找 WSDL 服务描述 Web 服务描述语言(WSDL)有多种用法.特别是,根据应用程序的需要,WSDL 在 UDDI 注册中心有好几种使用方法.在这第 1 篇文章中(本系列共三篇),我们将介绍一下在 UDDI 注册中心使用 WSDL 的几种不同的方法. Web 服务描述语言(WSDL)是用于描述 Web 服务的一种 XML 语言,它将 Web 服务描述为一组对消息进行操作的网络端点.一个 WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这

【Java】理解 UDDI

跟上规范的不断发展 统一描述.发现和集成(Universal Description, Discovery, and Integration,UDDI)项目继续丰富企业用于在 UDDI 业务注册中心表示 Web 服务并建立其模型的工具集.本文将介绍 UDDI 和它在 Web 服务发展过程中所起到的促进作用.您可以了解到 UDDI 的工作原理,并发现 UDDI 规范新的即将出现的功能. 0 评论: Tom Bellwood ([email protected]), 资深技术人员, IBM 2002

Java反射理解(五)-- 方法反射的基本操作

Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) 举例 具体操作请看下面举例: import java.lang.reflect.Method; class A{ public void print(){ System.out.println("helloworld"); } public void print(int a,int b){

Java反射理解(四)-- 获取成员变量构造函数信息

Java反射理解(四)-- 获取成员变量构造函数信息 步骤 获取成员变量信息: obj.getClass() 获取类类型对象 成员变量也是对象,java.lang.reflect.Field 类中封装了关于成员变量的操作: getFields() 方法获取的是所有的public的成员变量的信息 getDeclaredFields() 获取的是该类自己声明的成员变量的信息 getType() 得到成员变量的类型的类类型 getName() 得到成员变量的名称 获取成员变量构造函数信息: obj.g