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

  学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. sublime text 3.0新版本注册码

    -– BEGIN LICENSE -– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA ...

  2. 为开源社区尽一份力,翻译RocketMQ官方文档

    正如在上一篇文章中写道:"据我所知,现在RocketMQ还没有中文文档.我打算自己试着在github上开一个项目,自行翻译."我这几天抽空翻译了文档的前3个小节,发现翻译真的不是一 ...

  3. js onmouseover与onmouseout用法

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  4. Mysql----关于内联,左联,右联,全联的使用和理解

    准备工作:新建两张表 表一:student 填充内容:编号,姓名,班级 表二:school 填充内容:编号,班级,专业 这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联, ...

  5. 【c语言】实现一个函数,求字符串的长度,不同意创建第三方变量

    // 实现一个函数,求字符串的长度.不同意创建第三方变量. #include <stdio.h> #include <assert.h> int my_strlen_no(ch ...

  6. SSRS Fields cannot be used in page headers or footers

    问题环境:SSRS 2005 报表开发 尝试在Page Header中使用Data Set的字段,遇到以下的错误: The value expression for textbox '' refers ...

  7. wps 操作

    wps选择视图-->文档结构图

  8. Highway LSTM 学习笔记

    Highway LSTM 学习笔记 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan  2016-4-5   声明 1)该Dee ...

  9. mysql优化专题」90%程序员都会忽略的增删改优化(2)

    补充知识点:操作数据语句优化的认识 通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作). ...

  10. Android查缺补漏(View篇)--自定义 View 的基本流程

    View是Android很重要的一部分,常用的View有Button.TextView.EditView.ListView.GridView.各种layout等等,开发者通过对这些View的各种组合以 ...