关于Java的一点感悟---底层开发者的上层学习感悟

这些年主要一直是搞C、C++,偏底层一些,一直想多了解一下上层的东西。于是利用业余时间,看了些Java方面的东西,也利用一些架构搭建了一些简单的程序,在此想简单的谈谈自己的一点感悟。

1.Java真的是非常方便。对于做惯了底层的我,依靠文档在文本编辑器中写程序,已经成为了习惯。一下子转换到Java这种集成环境中,感觉简直是方便太多了。连文档都用不上了,光自动提示的信息就够解决普通问题了。写起来代码,感觉行云流水,非常的流畅。

2. Java的各种库非常的多,多数也是开源的。给人的感觉是只有想不到,没有做不到。基本上用到的东西,都已经有人实现了,需要的只是正确的调用,然后组合,不像在底层大部分内容要靠自己去实现。这就节省了很大一部分的精力,避免在一些很普遍的实现上浪费更多的精力和时间。

3. Java相关开发环境配置逐渐复杂,各种包的依赖有时候容易有问题。各种库多了之后,引用的多了之后,配置明显复杂程度上升,包与包之间依赖程度加深。引入maven可以解决一部分包依赖的问题,但是不得不承认,整个开发环境在变得越来越复杂,越来越大。这也是各种库多了之后,必然的一个发展吧。如果在未来,能把这些包和库有一个统一的管理,可能会更好一些。

4.上层开发和底层开发不同。底层开发,不断积累的是对底层细节的不断深入了解,积累的是对各种各样功能的具体实现,积累的是对计算机的各方面的细节的深入理解。而上层则不同,上层积累更多的是设计模式、架构、模型、面向对象等这些东西,当然本身也增强了对开发所需各种API的熟悉。

所以,对我自己而言,如果要学习上层的东西,在设计模式、架构、模型等这些略微宏观的东西不差的情况,最需要填补的就是一个对上层开发API的熟悉。只有熟悉了这些API,才可以在开发过程中信手拈来,而不是临时各种查阅文档。而熟悉API的最好的办法,就是多写一些小程序,实际的去使用这些API;同时,可以结合API文档对整体有一个印象,至少应该可以达到知道什么有,什么没有的程度。

PS:对于上层开发而言,我就是个初学者,毫无经验可言。欢迎大家一起探讨。

时间: 2024-08-29 15:42:50

关于Java的一点感悟---底层开发者的上层学习感悟的相关文章

C#与JAVA学习感悟

C#与JAVA学习感悟 学完C#与JAVA,感觉收获良多.C#与JAVA这两门语言相似度很高(了解它们早期历史的人可能知道为什么),也许很多人在学习JAVA(或C#)时会同时学习C#(或JAVA),因为它们太相似了.但在我看来先学习一种,精通后学另一种,这样的效率会高一些,同样是因为它们太相似了,许多概念都是相通的,但这些概念并不好理解和消化,如果同时学习两种,只会让你的头脑更加的混乱.当然,如果你认为自己够牛逼,也可以试试同时学习它们.下面是我的一些总结: 1. C#与JAVA这两门语言是面向

自己对Java的一点看法

作为一个理论性比较强的学生,谈一下这段时间对java以及对程序设计的理解 java相对于其它语言有几个特点,一个是面向对象,一个是强类型           首先谈谈面向对象,关于类和对象,这个一定要有深刻的认识,在类中,首先一个最重要的概念就是构造方法,为什么说它重要,就是因为你只要需要创建一个类地实例对象就需要调用到构造方法,这个就决定了这个类一开始要做什么,还是举一个例子吧         比如说BrfferedReader类,这个的构造方法就是BrfferedReader(Reader

Java进阶(二十五)Java连接mysql数据库(底层实现)

Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜索.特将之前使用的方法做一简单的总结.也能够在底层理解一下连接数据库的具体步骤. 实现 首先需要导入相关的jar包,我使用的为:mysql-connector-java-5.1.7-bin.jar. 下面来看一下我所使用的数据库连接方法类: MysqlUtil.java package cn.edu

【java并发编程艺术学习】(三)第二章 java并发机制的底层实现原理 学习记录(一) volatile

章节介绍 这一章节主要学习java并发机制的底层实现原理.主要学习volatile.synchronized和原子操作的实现原理.Java中的大部分容器和框架都依赖于此. Java代码 ==经过编译==>Java字节码 ==通过类加载器==>JVM(jvm执行字节码)==转化为汇编指令==>CPU上执行. Java中使用的并发机制依赖于JVM的实现和CPU的指令. volatile初探 volatile是是轻量级的synchronized,它在多处理器开发中保证了共享变量的可见性.可见性

Java程序员从底层到CTO的技术路线图

首先,附一张图片展示所在各个阶段的工作职能: 其次,文字型描述所在各个阶段的工作职能: Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入. 核心编程 IO.多线程.实体类.集合类.正则表达式.XML和属性文件.图形编程AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace. 网络编程 Applet.Socket/TCP/UDP.NIO.RMI.CORBA. Java语法基础 类.抽象类.接口.最终类.静态

String源码学习感悟

今天学习了一下String的源码.下面是我的学习感悟. 1. String str = "ABC"; Char[] data = {'A','B','C'}; String str = new String(data); 这两个是一样的.也就是说:String的底层就是字符的数组. 2. java提供了特殊的运算符'+',这个运算符可以用来将两个String类型的字符串相加获得新的字符串. String str1 = "AAA"; String str2 = &qu

2018-2019-20172329 《Java软件结构与数据结构》第三周学习总结

2018-2019-20172329 <Java软件结构与数据结构>第三周学习总结 教材学习内容总结 <Java软件结构与数据结构>第五章-队列 一.概述 1.队列是什么? 队列是种线性集合,其元素从一端加入,从另一端删除:注:队列是按照先进先出的方式处理的.从队列中删除元素的次序,与放置元素的次序是一样的. 2.队列的构成 (1)方法: 操作 描述 enqueue 向队列末端添加一个元素 dequeue 从队列前段删除一个元素 first 考察队列前端的那个元素 isempty

20172328 2018-2019《Java软件结构与数据结构》第六周学习总结

20172328 2018-2019<Java软件结构与数据结构>第六周学习总结 概述 Generalization 本周学习了第十章:非线性集合与数据结构--树.主要讨论了树的使用和实现,以及考察实现和使用树的实例. 教材学习内容总结 A summary of textbook 树(tree):树是一种非线性结构,其元素被组织成了一个层次结构.下面是树的术语,了解一下吧! 树有一个包含结点(node)和边(edge)的集构成,其中的元素被储存在这些结点中,边则将一个结点和另一个结点连接起来.

20172328 2018-2019《Java软件结构与数据结构》第七周学习总结

20172328 2018-2019<Java软件结构与数据结构>第七周学习总结 概述 Generalization 本周学习了第11章:二叉查找树.在本章中,主要探讨了二叉查找树的概念和各种二叉查找树实现,考察为二叉查找树添加和删除元素的算法以及维护平衡二叉查找树的算法 教材学习内容总结 A summary of textbook 二叉查找树(binary search tree):二叉树定义的扩展,一种带有附加属性的二叉树.附加属性是什么?树中的每个节点,其左孩子都要小于其父节点,而父节点