Java程序设计概述~(个人学习使用)


前言

  • –近年来,Java语言是比较受大众喜爱的程序语言之一。就我个人而言,我一开始是学的C语言,在机缘巧合下,学习并使用到了Java语言,让我再也回不去从前了~~

  • 其实Java能做游戏开发、网站开发、Android、软件应用等等(这样说可能更让大家知道这玩意能干啥~~)

    想了解更多就业可以去别的大佬那查查看看


一、Java语言基本介绍及个人见解

  • Java是一个完整的平台 , 有一个庞大的库,其中包含了很多重用的的代码,以及一个提供诸如安全性、跨操作系统的可移植性的以及自动垃圾收集等服务的执行环境~~

垃圾自动回收,让我想起之前写C分配内存地址没free掉的事情…>m<
在这里插入图片描述

  • 在使用过Java的一些写好的库类、库函数,在写代码时确实能简便一点,但是个人认为这既是优点也是缺点。对于编程初学者来说 ,从开始就直接接触Java,这样可能会导致其思维出现惰性,使其编程能力缺乏一定的锻炼,这按普遍规律来讲,是避免不了的(牛人另说),所以个人还是建议如果是编程初学者还是先学C语言打好编程基础,如果往后有对Java兴趣在转,当然两个都会最好啦~~

二、Java"白皮书"的关键术语介绍

备注:“”白皮书“”可以在www.oralce.com/technetwork/java/langenv-140151.html上找到

  • 简单性
    Java语法可以说是c++语法的“纯净版”,没有头文件(但有对应使用函数的包,后面文章会提及包的内容)、没有指针运算(甚至说指针语法)、结构、联合、操作符重载、虚积类等。
    .

  • 面向对象

    面向对象是一种程序设计技术,它将重点放在数据(即对象)和对象的接口上。

    就拿核心卷1上的比方说明:
    木匠,一个面向对象的木匠始终首先关注的是所制作的椅子上,其次才是所使用的工具;3
    一个非面向对象的木匠主要是考虑所用的工具。
    其实这个面向对象在拿起Java后会有比较深的感受

  • 分布式

    Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样

  • 健壮性

    Java编译器能够检测出其他语言运行时才能检测出的问题

  • 安全性

    Java受用于网络/分布式环境。为了实现这个目标,安全性颇受重视。使用Java可以构建防病毒、 防篡改的系统

     从一开始Java就设计成能够防范各种攻击,其中包括:		
     	1.运行时堆栈溢出。这就是蠕虫和病毒常用的攻击手段破坏
     	2.破坏自己进程空间之外的内存
     	3.未经授权
    
  • 体系结构中立

    编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,这些编译后的代码可以在许多处理器上运行。Java编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地转化成本地机器代码

    当然,解释型虚拟机指令肯定会比全速运行机器指令慢很多。不过,虚拟机有一个选项,可以将执行最频繁的字节码序列转化为机器码这一过程称为即使编译

    Java虚拟机还有一些其他优点。它可以检查指令序列的行为,从而增强其安全性。

  • 可移植性

    在Java中,基本数值类型都有固定的字节数,例如,int永远都是32位,不像C/C++一样依赖于运行环境,时而16位,时而32位,所以Java的明确基本数据类型大小就为代码移植提供了便利,毕竟在谁的计算机(系统相同)上面都一样~~

    除此之外,二进制数据以固定的格式进行储存和传输,消除了字节顺序的困扰。字符串则采用标准的Unicode格式存储

    在用户界面工具类在跨平台移植上面还是一个问题,所有其他的Java库确实能很好地支持平台独立性。

  • 解释型
    Java解释器可以在任何移植了解释器的机器上直接执行Java字节码。由于链接是一个增量式且轻量级的过程,所以开发过程也变得更加快捷,更加具有探索性

  • 高性能

    字节码可以(运行时)动态地转化成对于运行这个应用的特定CPU的机器码。

Java用的即时编译现在已经非常出色,甚至超过了传统的编译方式,原因在于它们有更多可用的信息。例如即使编译器可以监控哪些代码频繁执行,并优化这些代码以提高速度
=============================================================
更为复杂的优化是消除函数调用(内联)。即时编译器知道那些类已经加载。基于当前加载的类集合,如果一个特定的函数不会被覆盖,就可以使用内联。现在先不管这些深奥的,我也不太懂,后续会有补充)

  • 多线程

    多线程可以带来更快的交互响应和实时行为

    在摩根定律即将走到尽头,我们不在关注更快的处理器,而是着眼于获得跟多的处理器,而且要使他们一直保持工作。

  • 动态性

    库中可以自由添加新方法和实例变量,而对客户端却没有任何影响

三、关于Java常见的误解

  1. :JavaScript是Java的简易版
    :其实,这两个玩意除了名字像,没有任何关系,我一开也以为有关系的,现在知道上当了~~Java是强语言,他的数据类型从开始就得被表明是int、double、long等等(个别情况也有用var),编译器能捕获类型滥用导致的很多错误。而在JavaScript中,只有当运行时才能发现这些错误,所以消除错误更费劲…

  2. :Java是HTML的扩展
    :Java是一种程序设计语言;HTML是一种可描述网页结构的方式。除了用于网页上放置Java applet 的HTML扩展之外,两者没有任何共同之处

  3. :Java是解释型,因此对于关键的应用程序速度太慢了
    :早期的Java是解释型的,现在Java虚拟机使用了即使编译器,因此采用Java编写的“热点”代码运行速度与C++相差无几,有些情况甚至更优,这些前面有提到过几句在这里插入图片描述

四、 总结

总的来说,Java是一个不错的语言,强大的库让编程变得省事许多,相比C来说。但还是在强调一下,这给“省事”对初学者不友好,容易导致代码思维惰怠,如果你是初学者还是建议从C开始学,C能帮你建立一个代码底层原理运作的思维,在后面上手Java会更加得心应手。

Java的好,谁用谁知道,反正我是回不去了~~

最后用经典Hello word 结束本文~~
感谢阅读 owo

public static void main(String[] args) {
		System.out.println("Hello word");
	}
Hello Word

在这里插入图片描述

本文整理自《Java核心卷I》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼儿hzj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值