黑马程序员_JAVA学习心得

来源:互联网 发布:数据库怎么导入excel 编辑:程序博客网 时间:2024/05/16 09:26


----------------------android培训、java培训、期待与您交流! ---------------------

作为第一篇Java学习笔记,我觉得有必要说说我关于Java的认识. 

         首先,Java作为一种跨平台的编程工具,采用了一种脱离集体平台的虚拟机运行方式,给开发人员提供一套统一的开发环境,达到一次编译走天下的局.受这种机制的影响,我认为现在操作系统应该吸取Java这个思想,将操作系统设计成一种虚拟机,硬件层由操作系统完全屏蔽,包括CPU指令集,而操作系统提供统一的外部接口,包括硬件接口,CPU指令接口.类似于VM,VritualBox等虚拟机,单由不同于这里虚拟机,上层采用统一的指令接口,编译器编译成操作系统提供的指令,有操作系统执行,这样不论是什么语言都可以达到一次编译,全平台运行.当然操作系统除外.这样操作系统就相当于一个Java虚拟机.

       其次,Java是我接触的第一款面对对象语言,所以对Java有几个疑问.Java的数据和方法是封装了的,那么当new一个新对象,该对象中数据是独立的,但是方法是不是也是每个对象都占有内存呢?因为C语言中函数在内存中只存在一个副本,对内存占用相对减少,不知道Java的方法是不是也是只在内存中存放一个副本.Java中异常处理中,这个异常是不是有违背封装的原则呢?这些疑问还有待后续的学习来逐步完善.

      另一个我更想知道的问题是,Java采用了虚拟机来实现一次编译,到处运行.但是,前不久,我在PC上编译了一个Java程序,打包后放入手机,却不能运行,这个不是有违Java的设计原则吗?难得手机平台和PC平台不能通用?

     相比以前语言而已,Java提供的工具的确很方便,对字符串,GUI等处理的都很方便,但是Java灵活性就不是很强了.比如以前我常习惯用的进制转换

void hex(int num){      if(num!=0){          hex(num>>4);          putchar("0123456789ABCDEF"[num&0xF]);      }      else         putchar('0');}

用Java就很麻烦,首先,java字符串是一个对象,而不在是字符数组.当然,这些Java内部已经提供了方法.但是同类型的其他问题就不在那么灵活了.

---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima <
原创粉丝点击