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

  学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语言本身,它本身还是封装了很多复杂的底层,再也不需要去理会,有专门的人负责。

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

JAVA个人理解的更多相关文章

  1. [java] 深入理解内部类: inner-classes

    [java] 深入理解内部类: inner-classes // */ // ]]>   [java] 深入理解内部类: inner-classes Table of Contents 1 简介 ...

  2. Java初始化理解与总结 转载

    Java的初始化可以分为两个部分: (a)类的初始化 (b)对象的创建 一.类的初始化 1.1 概念介绍: 一个类(class)要被使用必须经过装载,连接,初始化这样的过程. 在装载阶段,类装载器会把 ...

  3. 从Java视角理解CPU上下文切换(Context Switch)

    从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态   在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快 ...

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

    从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多 ...

  5. Java IO 理解流的概念

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

  6. Effective Java通俗理解(持续更新)

    这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...

  7. Effective Java通俗理解(下)

    Effective Java通俗理解(上) 第31条:用实例域代替序数 枚举类型有一个ordinal方法,它范围该常量的序数从0开始,不建议使用这个方法,因为这不能很好地对枚举进行维护,正确应该是利用 ...

  8. Effective Java通俗理解(上)

    这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...

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

    Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) ...

随机推荐

  1. Android 7.0 中 ContentProvider 实现原理

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:汪毅雄 导语: 本文描述了ContentProvider发布者和调用者这两在Framework层是如何实现的. 作为Android的四大 ...

  2. CCF-201312-2-ISBN号码

    问题描述 试题编号: 201312-2 试题名称: ISBN号码 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包 ...

  3. 在网站开发中经常用到的javaScript技术

     1>屏蔽功能类 1.1 屏蔽键盘所有键<script language="javascript"><!--function document.onkeyd ...

  4. 实战-CentOS6.8配置nfs服务

    如题 #服务端:请自行配置yum源 命令操作:yum install nfs-utils rpcbind #配置文件编辑:vi /etc/exports /data 0.0.0.0 (rw,sync, ...

  5. javascript设计模式——策略模式

    前面的话 在程序设计中,常常遇到类似的情况,要实现某一个功能有多种方案可以选择.比如一个压缩文件的程序,既可以选择zip算法,也可以选择gzip算法.这些算法灵活多样,而且可以随意互相替换.这种解决方 ...

  6. IIS网站本机可以访问但局域网其他机器无法访问 解决方法

    在IIS部署网站的时候,发现只有本机可以访问,通过localhost和IP地址都可以,但是当局域网其他机器访问我的网站的时候,无响应. 我的是WIN10的系统 解决方法:   网站所对应的端口必须对外 ...

  7. springCloud zuul网关服务

    第一步:编写application.properties文件 spring.application.name=api-gateway server.port=5555 zuul.routes.user ...

  8. Solr6.5.0配置中文分词器配置

    准备工作: solr6.5.0安装成功 1.去官网https://github.com/wks/ik-analyzer下载IK分词器 2.Solr集成IK a)将ik-analyzer-solr6.x ...

  9. Wes7 剪裁方法

    1. 加载x64的 DS共享库,加载一个compatibility.xml模板 2. 导入硬件信息文件File—Import—Import PMQ 用TAP.exe工具创建.PMQ文件(.PMQ文件保 ...

  10. mongoDB之数据类型

    mongoDB之数据类型 Object  ID :文档的id String: 字符串,最常用,必须是utf-8 Boolean:布尔值,true 或者false Integer:整数 Double:浮 ...