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学习总结 一.获奖感想 能成为小黄衫第二批的成员之一,我感到非常荣幸.我在对老师给予我的鼓励与肯定感到欣喜之余,更多的是感受到了一种鞭策与期望.小黄衫不仅仅是对我的一种奖励,更是激励 ...
随机推荐
- dom 笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- angular.js的post数据方式
公司的项目前端部分现在改用angular,一切从头学起,今天记录一下关于数据请求的问题,由于get的请求方式比较简单,与post也类似,所以就单独讲讲post方式. 文档上post数据的写法有好几种, ...
- windows2003网络负载平衡设置
问题 随着计算机技术的不断发展,单台计算机的性能和可靠性越来越高.但现实中还是有许多应用是单台计算机难以达到,例如: 1.银行存储用户数据的数据库服务器必须保证24小时不间断的运转,并在发生严重硬件故 ...
- 国内物联网平台初探(八):移动云OneNET
国内物联网平台初探(八)——移动云OneNET 平台架构 数据模型 使用场景示意图 服务 IOT Paas 基础服务 为IoT开发者提供智能设备自助开发工具.后台技术支持服务,为您提供物联网专网.短彩 ...
- [JavaScript] js 复制到剪切板
zeroclipboard官网:https://github.com/zeroclipboard/ZeroClipboard 下载压缩包,得到两个“ZeroClipboard.js”和“ZeroCli ...
- POJ2103 Jackpot
Description The Great Dodgers company has recently developed a brand-new playing machine. You put a ...
- sharepoint 2013 设置 显示详细错误信息
1. 在当前网站端口目录下的Web.config修改 例如80端口的站点路径为:C:\inetpub\wwwroot\wss\VirtualDirectories\80 (1)将<customE ...
- 将excel数据导入内表的函数
call function 'TEXT_CONVERT_XLS_TO_SAP' exporting i_tab_raw_data = lt_raw "开始行 ...
- 【Xamarin挖墙脚系列:Xamarin.Android的API设计准则】
原文:[Xamarin挖墙脚系列:Xamarin.Android的API设计准则] 前言 楼主也是看着Xamarin的官方文档来的.基本也是照猫画虎.英语勉强凑合.翻译的不对的地方,大家多多指教.(这 ...
- How to convert an IPv4 address into a integer in C#?
仅仅针对于IPv4的处理方法 从string转换为int 以及从int转换为string // IPv4 int intAddress = BitConverter.ToInt32(IPAddress ...