理解Java语言——Java学习笔记(一)

1.        Java编程语言的主要目标

Java编程语言的主要目标是提供一种易于编程的语言,消除其他语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。利用面向对象的概念使程序真正的成为可视化程序,为使代码尽可能清晰合理、简明流程提供了一种方法。

为提高开发速度和代码可移植性提供一种解释环境,为运行不止一个活动线程的程序提供了一种方式,通过允许下载代码模块,从而在程序运行时也可以动态支持程序改变。为那些保证安全性而装载的代码模块提供了一种检查方法。

2.        Java语言的特性

语法简单

面向对象

分布性

可移植性

安全性

健壮性

解释性

多线程

动态性和并发性

3.        Java中的面向对象编程

封装:将信息隐藏,隐藏对象的实现细节,将东西包装在一起,然后以新的完整形式呈现出来。

继承和子类:Java中只支持单一继承,在Java中通过接口可以实现多重继承,但接口的概念简单,使用方便,而且不仅仅限于继承,它使多个不相关的类可以具有相同的方法。

多态

模板和泛型(template/generic)

注解

4.        Java与C/C++的比较

(1)      全局变量

在Java中,不能在所有类之外定义全局变量,只能在类中定义公用、静态的变量来实现一个全局变量。

(2)      goto

Java不支持C/C++中的goto语句,而是通过异常处理语句try、catch、finally等来代替C/C++中用goto来处理遇到错误时跳转的情况,使程序可读性更强且结构清晰。

goto语句是Java中的保留关键字,没有在Java中使用。

(3)      指针

指针是C/C++中最灵活,也是最容易产生错误的数据类型。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作。

(4)      内存管理

在C语言中,程序员通过库函数malloc()和free()来分配和释放内存,C++中则通过运算符new和delete来分配和释放内存。而在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。

(5)      数据类型的支持

在C/C++中,对于不同的平台,编译器对于简单数据类型如int、float等分配不同长度的字节数,例如int在IBM PC中为16位,在VAX-11中为32位,导致了代码的不可移植性,但在Java中对于这些数据类型总是分配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。

(6)      类型转换

在C/C++中,可以通过指针进行任意的类型转换,常常带来不安全性。而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。

(7)      头文件

C/C++中用头文件来声明类的原型以及全局变量、库函数等。而Java不支持头文件、类成员的类型,访问权限都封装在一个类中,运行时系统对访问进行控制以防止对私有成员的操作。同时,Java使用import语句来与其他类进行通讯,以便使用它们的方法。

(8)      结构和联合

C/C++中的结构和联合中所有成员均为公有,这就带来了安全性问题。Java中不包含结构和联合,所有的内容都封装在类中。

(9)      预处理

C/C++中用宏定义来实现的代码给程序的可读性带来了困难。在Java中不支持宏定义,通过关键字final来声明一个常量,以实现宏定义中广泛使用的常量定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件上传是Web开发中常见的功能之一,Java中也提供了多种方式来实现文件上传。其中,一种常用的方式是通过Apache的commons-fileupload组件来实现文件上传。 以下是实现文件上传的步骤: 1.在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> ``` 2.在前端页面中添加文件上传表单: ```html <form method="post" enctype="multipart/form-data" action="upload"> <input type="file" name="file"> <input type="submit" value="Upload"> </form> ``` 3.在后台Java代码中处理上传文件: ```java // 创建一个DiskFileItemFactory对象,用于解析上传的文件 DiskFileItemFactory factory = new DiskFileItemFactory(); // 设置缓冲区大小,如果上传的文件大于缓冲区大小,则先将文件保存到临时文件中,再进行处理 factory.setSizeThreshold(1024 * 1024); // 创建一个ServletFileUpload对象,用于解析上传的文件 ServletFileUpload upload = new ServletFileUpload(factory); // 设置上传文件的大小限制,这里设置为10MB upload.setFileSizeMax(10 * 1024 * 1024); // 解析上传的文件,得到一个FileItem的List集合 List<FileItem> items = upload.parseRequest(request); // 遍历FileItem的List集合,处理上传的文件 for (FileItem item : items) { // 判断当前FileItem是否为上传的文件 if (!item.isFormField()) { // 获取上传文件的文件名 String fileName = item.getName(); // 创建一个File对象,用于保存上传的文件 File file = new File("D:/uploads/" + fileName); // 将上传的文件保存到指定的目录中 item.write(file); } } ``` 以上代码中,首先创建了一个DiskFileItemFactory对象,用于解析上传的文件。然后设置了缓冲区大小和上传文件的大小限制。接着创建一个ServletFileUpload对象,用于解析上传的文件。最后遍历FileItem的List集合,判断当前FileItem是否为上传的文件,如果是,则获取文件名,创建一个File对象,将上传的文件保存到指定的目录中。 4.文件上传完成后,可以给用户一个提示信息,例如: ```java response.getWriter().write("File uploaded successfully!"); ``` 以上就是使用Apache的commons-fileupload组件实现文件上传的步骤。需要注意的是,文件上传可能会带来安全隐患,因此在处理上传的文件时,需要进行严格的校验和过滤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值