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语言本身,它本身还是封装了很多复杂的底层,再也不需要去理会,有专门的人负责。
至于框架,我觉得它是语言自身的逻辑(编辑出来的),如果可以尽量不要去用他们,给自己一个可以思考和成长的空间。
JAVA个人理解的更多相关文章
- [java] 深入理解内部类: inner-classes
[java] 深入理解内部类: inner-classes // */ // ]]> [java] 深入理解内部类: inner-classes Table of Contents 1 简介 ...
- Java初始化理解与总结 转载
Java的初始化可以分为两个部分: (a)类的初始化 (b)对象的创建 一.类的初始化 1.1 概念介绍: 一个类(class)要被使用必须经过装载,连接,初始化这样的过程. 在装载阶段,类装载器会把 ...
- 从Java视角理解CPU上下文切换(Context Switch)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态 在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快 ...
- 从Java视角理解CPU缓存(CPU Cache)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多 ...
- Java IO 理解流的概念
Java IO 理解流的概念 @author ixenos 在理解流时首先理解以下概念 1.流的来源和去向一般在构造器指出 2.方法中的形参一般是将流输出到某个位置,读取(INPUT)流从流读出数据( ...
- Effective Java通俗理解(持续更新)
这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...
- Effective Java通俗理解(下)
Effective Java通俗理解(上) 第31条:用实例域代替序数 枚举类型有一个ordinal方法,它范围该常量的序数从0开始,不建议使用这个方法,因为这不能很好地对枚举进行维护,正确应该是利用 ...
- Effective Java通俗理解(上)
这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约 ...
- Java反射理解(五)-- 方法反射的基本操作
Java反射理解(五)-- 方法反射的基本操作 方法的反射 1. 如何获取某个方法 方法的名称和方法的参数列表才能唯一决定某个方法 2. 方法反射的操作 method.invoke(对象,参数列表) ...
随机推荐
- Linux下RabbitMq安装
在大多数大公司,像应用服务器软件的安装.部署都是运维的事情,其实自己去尝试部署一下,也是有收获的. 有机会正好尝试了Linux下的rabbitMq安装过程,做了记录,希望有用到的人可以做下参考. 安装 ...
- 初识CSS
css解释 css样式: css是英文Cascading Style Sheets的缩写,称为层叠样式表,用于对页面进行美化,CSS的可以使页面更加的美观.基本上所有的html页面都或多或少的使用cs ...
- Express4.x API (二):Request (译)
写在前面 最近学习express想要系统的过一遍API,www.expressjs.com是express英文官网(进入www.epxressjs.com.cn发现也是只有前几句话是中文呀~~),所以 ...
- 基于lucene.net 和ICTCLAS2014的站内搜索的实现1
Lucene.net是一个搜索引擎的框架,它自身并不能实现搜索.须要我们自己在当中实现索引的建立,索引的查找.全部这些都是依据它自身提供的API来实现.Lucene.net本身是基于java的,可是经 ...
- HDU 1013.Digital Roots【模拟或数论】【8月16】
Digital Roots Problem Description The digital root of a positive integer is found by summing the dig ...
- 赵雅智_Swift(1)_swift简单介绍及类型
Swift 是 iOS 和 OS X 应用开发的一门新语言. 假设你有 C 或者 Objective-C 开发经验, Swift 的非常多内容都是你熟悉的. Swift 的类型是在 C 和 Objec ...
- or1200处理器的异常处理类指令介绍
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 我们在计算机体系结构的学习中知道:中断实质上包含由外部事件引起的硬中断(又称外中断)和由内部预先安排的特定指令或内部异常引起的软中断 ...
- 详解Office Add-in 清单文件
作者:陈希章 发表于2017年12月8日 前言 我们都知道,一个Office Add-in,最主要是由两个部分组成的:清单文件(manifest)和真正要用来执行的网站. 清单文件其实是一个标准的XM ...
- 结对编程-四则运算GUI的实现
一.项目成员以及coding地址: 洪灏捷(本人)201321122020 coding地址:https://git.coding.net/hoje/The-GUI-operation.git 白至 ...
- Ubuntu 16.06 安装拼音输入法 设置双拼
一不小心把Ubuntu删东西删坏了 呜- 刚好跟可恶的 下载 文件夹告别了 现在百度上的相关教程多多少少有些问题,多数过时了. +++++++++++++++++++++说正事专用分隔符++++++ ...