Java学习感受
一个暑假,两本书,让我了解到了Java的神奇美妙,这个工具的年龄跟我一样大,然而日久弥新,随着电脑技术科学家,工程师的开发,Java的功能越来越完善。学习的时间不长,但我比较着学习,把Java跟C、C++、C#比较着学习,收获良多。
Java没有VS那种可视化的编程环境,现在还有点不习惯,毕竟完成这些程序的代码量还是挺大的,但Boss跟我们说,Swing、AWT、Bean等图形化界面设计,不用看,直接跳过,只是纳闷,既然这种技术落后,为什么还要写进书里。然而,事实上,经过浏览一遍,这些图形界面的设计模式确实很让人捉急,确实很好奇,当年的工程师们是怎么过来的。
最棒的是,Java的指针已经被封装起来了,不用像C、C++一样,一遍遍苦逼的被指针耍的团团转,debug半天不知所以然,由于一个小小的指针,可以耗费一整天的时间,不再考虑链表、队列、栈等数据结构,都被封装好了,多么造福的一项设计啊
在Java的面向对象特性中,感觉比C++好多了,用简单的接口概念、metaclass等多继承手段代替C++的多继承。然而令我奇怪的是,Java竟然不支持多继承!毕竟在C++中,一个类经常可以通过继承衍生出很多个不同的子类,孙子类。下文才知道,可以使用类的接口解决复杂任务,而不必知道其中的实现细节。一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现相应接口的对象。了解到Java的封装性,也许就是其迅速走红的一个原因吧,良好的封装性,让代码不易被篡改。
对于package的概念,确实感到很新鲜,我把他们类比为头文件,库……都不想,因为在同一个project中,可以新建很多个package,每个package还可以建立很多个class,到底有什么意义呢,为了封装性?书中说,为了确保类名的唯一性,嵌套的package之间没有任何联系。
程序出错了怎么办?我不是说程序员敲代码的错误,而是当遇到一些比较调皮的用户,故意不输入我们想要的数据,导致程序出现异常,这怪谁啊?当然是苦逼程序员咯,所以本着客户就是上帝的原则,既要考虑到用户有多调皮,又要关心电脑不要傲娇。把异常分类:Error类和Exception类。这些还远远不能满足报错的需要,还需要创建特定的异常类
JDBC,这是Boss安排给我的第一个任务。虽然完成了,但在编写的过程中,有许多的疑问,首先,既然是连接的端口,难道不不可以直接import这个包吗?接着,假如不能import这个包,直接把代码copy不行吗?另外,还不能通过编译器完成对数据库的创建,需要在mysql里面进行创建,这,好麻烦啊!!!还有进行增删查改的操作是固定的,能不能随时根据用户需要打印出来呢?命令行只能写所有数据库都有的那种命令才能通用,求同存异,这种思想一直存在。创建一个接口,目的是方便,然而这还远远没有达到方便的目的。
Java的应用跨国界,堪称计算机领域的丝绸之路,只是,世界这么大,语言这么多,完成这些语言的转换是多么蛋疼的一件事啊,日期、时间、货币、数字格式……各个地区各有特色,都要一一对他们进行设置,做完这些工作,很累的啊,难道跨国界这么费劲吗?难道不能以来系统来完成这些操作吗?
安全性,Java对程序安全性的真的是苛刻到无以复加的地步。C中,经常会忽略对数组边界的检查,然而Java绝不会留下这个可乘之机。Java的三种安全机制:校验器、安全管理器、数字签名,一项比一项严格,对于恶意的攻击性代码,Java的安全性机制,保护着程序不受攻击(在书中,我了解到,恶意代码的攻击方式主要是以继承出一个新的子类、利用数组的边界漏洞、通过指针使内存溢出、篡改代码达到修改注册表的目的等方式为主),数字签名(也就是开发者的身份证明)又包括消息摘要,消息签名、校验签名、证书签名,证明程序未曾被黑客修改过。很有趣哦,当自己还不能完全信任对方的程序时,通过第三方认证,确定程序的安全性。这在现实生活的人际交流中,很常见呐,两个陌生人通过一个共同的熟人搭桥达到熟识的目的。
Java可以很轻松的完成打开socket等操作,可以通过远程方法调用机制使得分布式对象之间进行通信。通过设置端口号,我用编译器访问了美国的国家技术研究所的服务器。我知道,Java Wed的范围何其宽广,我所接触的只是冰山一角。虽然了解到分布式结构,但由于书中给的例子只是一台服务器对应一个客户端,,通过这个例子,让我知道,客户端和服务器之间的数据交流环节,以及交流之前的身份认证。此外,对于多台客户端访问同一个服务器,我猜想是否可以使用多线程管理,达到多个客户端访问一台服务器的目的?还是开辟多个端口以满足多台客户端访问的目的(这样的话,客户端的需求的数量又是无止境的)?联想到蜂窝拓扑网络,对于书中的介绍有更加的不足了。
Java另一个有趣的地方,就是可以调用本地方法。代码啊,敲太多也会烦的,Java可以与其他语言兼容。以前敲过的程序,经过鼠标的稍微点击,编译器的小小操作就可以了果然很方便。
Java的水好深,随便一个方面的研究就可以发现很多问题,不只是知识的不足,更有经验上的不足。
Java学习感受的更多相关文章
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
- 20145330第八周《Java学习笔记》
20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...
- 20145330第七周《Java学习笔记》
20145330第七周<Java学习笔记> 第十三章 时间与日期 认识时间与日期 时间的度量 GMT(格林威治标准时间):现在不是标准时间 世界时(UT):1972年UTC出来之前,UT等 ...
- Java学习步骤
我们为什么选择Java 大多数人选择Java可能只是因为听说Java前景好.Java比较好找工作.Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么 ...
- 转:Java学习路线图
作者: nuanyangyang 标 题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内 [以下肯定是不完整的列表, ...
- Java 学习路线以及各阶段学习书籍,博文,视频的分享
感谢: 感谢每一个打开这篇文章的人,听我在这里瞎扯!至于我为什么会有闲情写这篇文章呢?因为我每天想的是为什么要给我这样的需求,背后的人性是什么,我能再做些什么能让他更好.久而久之,我也稍微有了些自己的 ...
- 从.Net到Java学习第一篇——开篇
以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保 ...
- 获奖感想和Java学习总结
获奖感想和Java学习总结 一.获奖感想 能成为小黄衫第二批的成员之一,我感到非常荣幸.我在对老师给予我的鼓励与肯定感到欣喜之余,更多的是感受到了一种鞭策与期望.小黄衫不仅仅是对我的一种奖励,更是激励 ...
随机推荐
- mysql SELECT INTO OUTFILE ,can't create file (转)
原文 http://blog.sina.com.cn/s/blog_6a5e34ad0100zfbi.html (转) 命令行模式进入mysql #mysql -uroot -p12345 #sel ...
- Mock相关收集
MockMVC+Mockito http://www.cnblogs.com/syxchina/p/4150879.html Spring中使用Mockito http://www.cnblogs.c ...
- Git 的基本配置
用户信息 你个人的用户名称和电子邮件地址,用户名可随意修改,git 用于记录是谁提交了更新,以及更新人的联系方式. $ git config --global user.name "Donl ...
- 转载的在DOS下操作mysql
转载原文地址:http://www.server110.com/mysql/201309/1070.html 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1 ...
- Apache配置允许文件索引
这两天在看bootstrap的文档,所以在本地搭建了一个web server. 这里记下Apache的一个小配置: LISTEN *:8000 <VirtualHost *:8000> A ...
- POJ 1459 Power Network 最大流(Edmonds_Karp算法)
题目链接: http://poj.org/problem?id=1459 因为发电站有多个,所以需要一个超级源点,消费者有多个,需要一个超级汇点,这样超级源点到发电站的权值就是发电站的容量,也就是题目 ...
- csu 10月 月赛 H 题 A Very Hard Problem
Description CX老湿经常被人黑,被黑得多了,自己也就麻木了.于是经常听到有人黑他,他都会深情地说一句:禽兽啊! 一天CX老湿突发奇想,给大家出了一个难题,并且声称谁能够准确地回答出问题才能 ...
- Stanford CoreNLP--Part of Speech
Stanford CoreNLP Part Of Speech简称POS,主要是对待分析的句子中的单词进行标记的功能,如标记名词.动词等,该组件是CoreNLP工程的一部分,详细内容可参考:CoreN ...
- ArrayList与Vector、HashMap与HashTable
摘自api: 1.ArrayList与Vector: 原文:This class(ArrayList) is roughly equivalent to Vector, except that it ...
- [转贴] C/C++中动态链接库的创建和调用
DLL 有助于共享数据和资源.多个应用程序可同时访问内存中单个DLL 副本的内容.DLL 是一个包含可由多个程序同时使用的代码和数据的库.下面为你介绍C/C++中动态链接库的创建和调用. 动态连接库的 ...