技术标签: Java基础
本文是课上资料的总结非原创没有转载地址
概念:计算机内存中的一块存储空间,是存储数据的基本单元。
组成:数据类型 变量名 值
int money; // 开辟整数变量空间
money = 100; // 将整数值赋给变量
注意:Java是请类型语言,变量的类型必须与数据的类型一致。
Java中的变量具有严格的数据类型区分。(强类型语言)
类型 | 字节 | 取值范围(二进制) | 取值范围(十进制) |
---|---|---|---|
byte | 1字节 | -2 ^ 7 ~ 2 ^ 7 - 1 | -128 ~ 127 |
short | 2字节 | -2 ^ 15 ~ 2 ^ 15 - 1 | -32768 ~ 32767 |
int | 4字节 | -2 ^ 31 ~ 2 ^ 31 - 1 | -2147483648 ~ 2147483647 |
long | 8字节 | -2 ^ 63 ~ 2 ^ 63 - 1 | -9223372036854775808 ~ 9223372036854775807 |
注意:int位整数的默认类型,如需为long类型赋值,需要在值的后面追加“L”
类型 | 字节 | 负数取值范围 | 正数取值范围 | 精度(从第一个非0数字开始算) |
---|---|---|---|---|
float | 4字节 | -3.4E+38 ~ -1.4E-45 | 1.4E-45 ~ 3.4E+38 | 7,8位(第8位不准确) |
double | 8字节 | -1.7E+308 ~ -4.9E-324 | 4.9E-324 ~ 1.7E+308 | 15,16位(第16位不准确) |
浮点型数值采用科学计数法表示:
注意:double为浮点数的默认类型,如需为float类型赋值,需要在值的后面追加“F”
double存的值是近似值
类型 | 字节 | 取值范围 | 描述 |
---|---|---|---|
boolean | 1字节 | true/false | 仅可描述“真”或者“假” |
注意:Java中的boolean不能参与算数运算
类型 | 字节 | 取值范围(无符号数) | 字符编码 |
---|---|---|---|
char | 2字节 | 0~65535 | Unicode字符集(万国码) |
char c1 = 'A';
(通过’'描述为字符赋值)char c2 = 65;
(通过十进制数65在字符集中对应的字符赋值)char c3 = '\u0041';
(通过十六进制数41在字符集中所对应的字符赋值)如何给char赋特殊字符,如单引号’、双引号”
为解决这一问题,Java采用了转义字符来表示单引号和一些特殊符号,如下表。
转义字符 | 描述 |
---|---|
\ n | 换行符 |
\ r | 回车符(回到行的开始位置) |
\ t | 缩进(制表位) |
\ \ | 反斜线 |
\ ’ | 单引号 |
\ " | 双引号 |
类型 | 取值范围 | 字符编码 |
---|---|---|
String | 任何“ ”之间的字面值 | Unicode字符序列 |
赋值语句 | 对/错 |
---|---|
byte a = 128; | × 超出取值范围 |
short b = 65; | √ |
short c = -32000; | √ |
float d = 12.34; | × 浮点数默认为double类型,此时应加F或f |
char e = ‘65’; | × 字符只能有一个 |
char f = 65; | √ 可直接赋值为整数 |
char g = b; | × short可能为负数 |
boolean h = “true”; | × true / false为Java保留字,直接使用 |
String i = " 123"; | √ 空格也是字符 |
两个操作数进行计算
操作符 | 描述 |
---|---|
+ | 加、求和 |
- | 减、求差 |
* | 乘、求积 |
/ | 除、求商 |
% | 模、求余 |
操作符 | 描述 |
---|---|
++ | 递增,变量值+1 |
- - | 递减,变量值-1 |
注意:当运算符在在操作数后面时(X++)一定要看成一个整体
等号右边赋值给等号左边
操作符 | 描述 |
---|---|
= | 直接赋值 |
+= | 求和后赋值 |
-= | 求差后赋值 |
*= | 求积后赋值 |
/= | 求商后赋值 |
%= | 求余后赋值 |
两个操作数进行比较
操作符 | 描述 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
两个boolean类型的操作数或表达式进行逻辑比较
操作符 | 语义 | 描述 |
---|---|---|
&& | 与(并且) | 两个操作数,同时为真,结果为加 |
| | 或(或者) | 两个操作数,有一个为真,结果为真 |
! | 非(取反) | 意为“不是”,真即是假,假即是真 |
将判断后的结果赋值给变量
操作符 | 语义 | 描述 |
---|---|---|
? : | 布尔表达式 ? 结果1 : 结果2 | 当表达式结果为真,获得结果1 当表达式结果为假,获得结果2 |
short s = 123;
int i = s; // 自动转换成功,编译通过
short s = 123;
byte b = (byte)s; // 强换:(目标类型)值
例:int i = 100; byte b = (byte)i; //b=100
例:int i = 10000; byte b = (byte)i; //b=16(符号位变化,可能变为负数)
例:double d = 2.5; int i = (int)d; //i = 2(小数位舍掉)
例:char c = 65; int i = c; //i=65
.nextInt();
//获得整数.nextDouble();
//获得小数.next();
//获得字符串.next().charAt(0);
//获得单个字符注意:
.charAt(0);
严格意义上讲是String类中的方法,后续讲到。- 如果输入不匹配的数据,则会产生
java.util.InputMismatchException
异常错误。
public class Demo {
public static void main(String[] args) {
double d1 = 1.4;
double d2 = 0.5;
double d3 = 0.9;
double d4 = (d1-d2) / d3;
System.out.println("d4" = d4);
// 输出多少?解决方法后期会说(BigDecimal)
// d4 = 0.9999999999999999(最后一位不准确)
double c1 = 0.0/0.0;
System.out.println("c1" = c1);
// 输出多少?
// c1 = NaN(不是一个数)
double c2 = 1.0/0.0;
System.out.println("c2" = c2);
// 输出多少?Infinity——无穷
// c2 = Infinity
double c3 = - 1.0/0.0;
System.out.println("c3" = c3);
// 输出多少?
// c3 = -Infinity
}
}
文章浏览阅读2.4k次。一、准备工作1.注册账号注册一个Docker Hub账号,管理自己的镜像(共享镜像)https://hub.docker.com2.新建一个仓库Docker hub上面创建仓库,仓库用于存放镜像,就像我们在Github Create Create Repository比如:仓库名称叫navigation-server,所以路径就是liyinchi/navigation-server了。注意:仓库名称只能小写3.查看容器IDdocker ps上传到Doc._本地docker镜像上传dockhub
文章浏览阅读1.5k次,点赞2次,收藏8次。**this.$refs.transformerForm.clearValidate(['transformerLVSRateCapacity'])**清除切换校验时上一次校验留下的警告文字,<el-form :model="transfomerInfo" :rules="rules" ref="transformerForm" label-width="170px"> <el-form-item label="低压侧容量(MVA):" prop="transformer..._ele 切换后清除校验
文章浏览阅读2k次。0x01、S2-001远程代码执行漏洞原理该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{value} 对提交的数据执行了一次 OGNL 表达式解析,所以可以直接构造 Payload 进行命令执行影响版本Struts 2.0.0 - Struts 2.0.8poc执行任意命令%{#a=(new java.lan_vulhub靶场有哪些漏洞
文章浏览阅读1.7w次,点赞5次,收藏33次。1 问题找出2个文件里面重复的数据(这个问题是csdn排名第一的大神stpeace的专栏在微信里面和我的交流,我当时一脸懵逼)文件a.txt文件内容如下cat a.txt123123234345456文件b.txt文件内容如下cat b.txt234345456789789两个文件重复的数据如下234345456..._limux中a-b相同内容
文章浏览阅读545次。说明:在调用applyhatch前,按照自己的需要对Matlab自动绘制的图片编辑。function applyhatch(h,patterns,colorlist)%APPLYHATCH Apply hatched patterns to a figure% APPLYHATCH(H,PATTERNS) creates a new figure from the figure Hby% repl..._matlab不等间隔直方图
文章浏览阅读373次。本人使用的版本是navicat_for_mysql_10.0.11_cn_linux,使用官网上下的11版本的无法打开注意解压目录不要放在中文目录下,会出现各种问题,本人就出现打开之后添加列名添加不上。(1).先安装wine环境yum install wine如果yum源中没有,可以使用下面这个源wgethttp://download.fedoraproject.org/pub/epel/6/i..._centos7安装navicate for mysql
文章浏览阅读1w次。下面会介绍一些laravel中一些好用的扩展包,当然,其中有的也是php的扩展包,合理的使用能够大大的提示开发效率。_laracasts/testdummy
文章浏览阅读234次。列表的开始和结束要加上中括号 采用逗号将列表的项与项分开 使用“=”号操作符将整个列表赋予一个变量列表中可以放置任意的数据类型,如果是字符串,需要打上引号2.列表索引:从0开始;可以倒着来数,最后一个的序号是-1。取列表中的值:print aList[1]、print aList[-2]、print aList[-1][0]片段切片:[a:b],表示从a开始(包括a)到b之..._python列表类型怎么写
文章浏览阅读2.2k次。在oracle的存储过程中,不能直接使用DDL语句,比如create、alter、drop、truncate等。那如果我们想在存储过程中建立一张临时表就只能使用动态sql语句了:create or replace procedure pro asstr_sql varchar2(100);begin-- 创建临时表str_sql := 'create global temporary table ..._oracle 存储过程 临时表
文章浏览阅读476次。特别注意:本人很懒就搞了些懒人办法1.建立个文本。shell.sh,复制下面代码保存。打开终端(建议直接root用戶运行)。2.sudo chmod +x sheell.sh3.sudo ./shell.sh 文件名.avi (扩展名可以任意) 使用方法4.这段代码 支持H264 h265 支持60针视频5.shell.sh 文件要和视频文件同一目录6.转换完的文件被保存在finish文件夹中#!/bin/bash##i-合并视频##-change(转换)##i用法i(_kvmts
文章浏览阅读4.2k次。SpringBoot整合Redis与Cache实现分页缓存_分页缓存
文章浏览阅读192次。一、tomcat7.exe与startup.bat的区别:1、这两个都可以启动tomcat,但tomcat7.exe必须安装了服务才能启动,而startup.bat不需要2、另外一个区别是它们启动所使用的JAVA环境配置是分开的tomcat7.exe启动所使用JAVA配置与服务启动所使用的JAVA配置一样,都是通过tomcat7w.exe的JAVA面板配置(可以在创建服务前修..._龙蜥操作系统tomcat启动的java和java版本不一样