JAVA学习笔记——第三章 Java语言基础

3.1 Java主类结构

Java语言是面向对象的程序设计语言,Java程序的基本组成单元是类,类体中又包括属性和方法两部分。每一个应用程序都必须包含一个main()方法,含有main()方法的类称为主类。

例:

package Number //package为包关键字,Number为声明该类所在的包
public class First{
    static Sting s1 = "你好!"; //成员变量(全局变量)位于类体中的属性
    public static void main(String[] args){ //主方法
        String s2 = "Java"; //局部变量位于方法体中的属性
        System.out.println(s1);
        System.out.println(s2);
    }
}

注:

代码中的所有标点符号都是英文字符

文件名必须和类名同名

Java严格区分大小写

3.2 基本数据类型

                                          整数类型(byte、short、int、long)

                               数值型

                                          浮点类型(float、double)

基本数据类型              字符型

                               布尔型

3.2.1 整数类型

整型数据在Java程序有3种表示形式,分别为十进制、八进制和十六进制

十进制:不能以0作为开头(0除外)

八进制:必须以0开头

十六进制:必须以0X或者0x开头

数据类型                   内存空间(8位等于1字节)                                取值范围

byte                        8位                                                            -128~127

short                      16位                                                        -32768~32767

int                          32位                                               -2147483648~2147483647

long                        64位                               -9223372036854775808~9223372036854775807

注:对于long型值,若赋给的值大于int型的最大值或小于int型的最小值,则需要在数字后加上L或l,表示该数值为长整数,如

long num = 2147483650L;
3.2.2 浮点类型

数据类型                   内存空间(8位等于1字节)                                   取值范围

float                        32位                                                   1.4E-45~3.4028235E38

double                     64位                                                 4.9E-324~1.7976931348623157E308

注:在默认情况下小数都被看作double型,若使用float型小数,则需要在小数后面添加F或f。

3.2.3 字符类型

char型

字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。

在定义字符型变量时,要以单引号表示。

转义字符

转义字符是一种特殊的字符变量,它以反斜线“\”开头,后跟一个或多个字符。

3.2.4 布尔类型

布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有true和false两个值,分别代表逻辑中的“真”和“假”。

3.3 变量与常量

在程序执行过程中,其值不能被改变的量成为常量,其值能改变的量称为变量。

3.3.1 标识符和关键字

注:

Java语言规定标识符由任意顺序的字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。标识符不能是Java中的保留关键字。

3.3.2 声明变量

注:系统的内存可大略分为3个区域,即系统区(OS),程序区(Program)和数据区(Data)。

3.3.3声明常量

在程序运行过程中一直不会改变的量成为常量,通常也叫“final变量”。常量在整个程序中只被赋值一次。在为所有对象共享值时,常量是非常有用的。

final 数据类型 常量名称[=值]
3.3.4变量的有效范围

成员变量在整个类体中都有效

局部变量只在方法体中有效

3.4运算符

3.4.1 赋值运算符

int a = 100;
注:存在两个以上的“=”,从右向左赋值

3.4.2 算术运算符

加、减、乘、除、求余

3.4.3自增和自减运算符

++a(--a)//使用前运算
a++(a--)//使用后运算
3.4.4比较运算符

>,<,==,>=,<=,!=

3.4.5逻辑运算符

&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)

注:"&"会判断两个表达式;“&&”则是针对boolean类型的类进行判断,当一个为false时,就不去判断了。通常将逻辑表达式中从左端的表达式可以推断出整个表达式的值的称为“短路”,否则为“非短路”。

3.4.6 位运算符

位运算符除按位与和按位或运算符外,其他只能用于处理整数的操作数。位运算是完全针对位方面的操作。整数数据在内存中以二进制的形式表示,如int型变量7的二进制表示是00000000 00000000 00000000 00000111

左边最高位是符号位,最高位是0表示正数,若为1则表示负数。负数采用补码表示,如-8的二进制表示为11111111 11111111 11111111 11111000

“按位与”运算

“按位与”运算的运算符为“&”,为双目运算符。“按位与”运算的运算法则是:如果两个整型数据a,b对应位都是1,则结果位才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

“按位或”运算

“按位或”运算的运算符“|”,为双目运算符。“按位或”运算的运算法则是:如果两个操作数对应位都是0,则结果位才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

“按位取反”运算

“按位取反”运算也称“按位非”运算,运算符为“~”,为单目运算符。“按位取反”就是操作数二进制中的1修改为0,0修改为1。

“按位异或”运算

“按位异或”运算的运算符是“^”,为双目运算符。“按位异或”运算的运算法则是:当两个操作数的二进制表示相同(同时为0或同时为1)时,结果为0,否则为1。若两个操作数的精度不同,则结果数的精度与精度高的操作数相同。

移位操作

<<:左移

左移就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,左边移空的部分补0。

>>:右移

右移则复杂一些。当使用“>>”符号时,如果最高位是0,左移空的位就填入0;如果最高位是1,右移空的位就填入1。

>>>:无符号右移

无论最高位是0还是1,左侧被移空的高位都填入0。

注:移位运算符适用的数据类型有byte,short,char,int以及long

TIPS:

移位可以实现整数除以或乘以2^n的效果。一个数左移n位,就是乘以2^n,一个数右移n位,就是除以2^n。

3.4.7三元运算符

条件值?值1:值2
3.4.8运算符优先级

通常优先级由高到低的顺序依次是:

增量和减量运算

算术运算

比较运算

逻辑运算

赋值运算

TIPS:在编写程序时尽量使用括号“()”

3.5 数据类型转换

3.5.1 隐式类型转换

从低级类型向高级类型的转换,系统将自动执行,程序员无须进行任何操作。这种类型的转换称为隐式转换。

这些类型按精度从低到高排列的顺序为byte<short<int<long<float<double

3.5.2 显示类型转换

当把高精度的变量赋值给低精度的变量时,必须使用显示类型转换运算(又称强制类型转换)。

(类型名)要转换的值
注:当执行显示类型转换时可能会导致精度损失。

3.6 代码注释与编程规范

3.6.1 代码注释

1.单行注释

“//”为单行注释标记,从符号“//”开始直到换行为止的所有内容均作为注释而被编译器忽略。

2.多行注释

“/* */”为多行注释标记,符号“/*”与“*/”之间的所有内容均为注释内容。注释中的内容可以换行。

3.文档注释

“/** */”为文档注释标记。







  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值