自己建立网站,接口网站开发,wordpress里的导航用什么位置,给网站平台做推广叫什么1 关键字
关键字#xff1a;被Java语言赋予了特殊含义#xff0c;用作专门用途的字符串#xff08;或单词#xff09;。如class、public、static、void等#xff0c;这些单词都被Java定义好了#xff0c;称为关键字。 特点#xff1a;关键字都是小写字母#xff1b;官…1 关键字
关键字被Java语言赋予了特殊含义用作专门用途的字符串或单词。如class、public、static、void等这些单词都被Java定义好了称为关键字。 特点关键字都是小写字母官方地址Java Language Keywords (The Java™ Tutorials Learning the Java Language Language Basics)https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html 2 标识符
标识符Java中变量、方法、类等要素命名时使用的字符序列称为标识符。简单的说凡是可以自己命名的地方法都是标识符如类名、方法名、变量名等等。
标识符命名规则必须遵守不遵守会报错
由26个英文字母大小写0-9_或$组成不能包含空格不能以数字开头不能与关键字或保留字相同严格区分大小写长度不限定义标识符时要“见名知意”。 标识符命名规范建议遵守不遵守也可以但遵守了显得更专业
包名多单词组成时所有字母都小写xxxyyyzzz。如java.lang类名、接口名多单词组成时所有字母的首字母大写XxxYyyZzz。如Hello变量名、方法名多单词组成时第一个单子首字母小写第二个单词开始每个单词首字母大写xxxYyyZzz。如bookName常量名所有字母都大写多单词组成时每个单词之间用下划线链接XXX_YYY_ZZZ。如MAX_VALUE
3 变量
变量内存中的一个存储区域该区域的数据可以在同一类型范围内不断变化。
变量三要素数据类型、变量名、存储的值Java中变量声明的格式数据类型 变量名 变量值;变量的作用在内存中保存数据变量都有作用域只在作用域内生效同一作用域内变量不能重名
class VariableTest{public static void main(String[] args) {//变量的声明//分步式先声明再初始化char gender;gender 男;//一步式声明同时初始化int age 18;//变量的使用直接调用变量名System.out.println(genderage);}
}
4 数据类型 表数范围计算公式 整型
整数类型包括byte、short、int、long注意 1. 声明整型变量时遵守保小不保大数据类型能小则小 2. 整型常量默认为int占用空间更小声明long型常量须后加l或L
各整数类型有固定的表数范围和占用存储空间 浮点型
整数类型包括float、doublefloat单精度尾数可以精确到7位有效数字double双精度精度是float的两倍注意 浮点型型常量默认为double精度更高声明float型常量须后加f或F浮点型表数范围和占用空间
浮点型常量的两种表示形式
十进制形式。如5.12 512.0f .512必须有小数点科学计数法形式。如5.12e2 512E2 100E-2 关于浮点型精度的说明 不是所有小数都可以精确的使用二进制浮点数表示。二进制浮点不能精确的表示0.1、0.01、0.001这样10的负次幂。浮点型float、double的数据不适合在不容许舍入误差的金融计算领域如果需要精确数字计算或保留指定位数的精度需要使用BigDecimal类。浮点在机器中存放的形式浮点数符号位指数位尾数位。浮点数float超出存储空间的值会被丢掉演示
// 1.float精度不高超出存储范围的部分会被丢掉
float num1 2.1234567851f;
double num2 2.1234567851f;
System.out.println(float num1 \ndouble num2);
// 2.二进制浮点数不能准确的表示0.1、0.01、0.001等10的负次幂的数
System.out.println(0.1 0.2);
// 3.浮点型使用陷阱
double num3 2.7;
double num48.1/3;
System.out.println(num3 num4);
float f1 123123123f;
float f2 f11;
System.out.println(f1);
System.out.println(f2);
System.out.println(f1 f2);
应用案例
案例1定义圆周率并赋值为3.14现在3个圆的半径分别为1.2、2.5、6求他们的面积
/*** author shbzhao* version 1.0* date 2023/8/26-0:34* description 定义圆周率并赋值为3.14现在3个圆的半径分别为1.2、2.5、6求他们的面积*/
public class FloatDoubleExer {public static void main(String[] args) {double PI 3.14; //圆周率double radius1 1.2;double radius2 2.5;double radius3 6;System.out.println(第1个圆的面积 PI * radius1 * radius1);System.out.println(第2个圆的面积 PI * radius2 * radius2);System.out.println(第3个圆的面积 PI * radius3 * radius3);}
} 案例2将华氏温度转为摄氏温度(℃)℃(℉ - 32) / 1.8
/*** author shbzhao* version 1.0* date 2023/8/26* 将华氏温度转为摄氏温度(℃)℃(℉ - 32) /1.8*/
public class FloatDoubleExer02 {public static void main(String[] args) {double hua 80.0;double she (hua-32)/1.8;System.out.println(华氏度hua℉摄氏度she℃);}
} 字符型
char类型数据用来表示通常意义上“字符”占2字节字符型变量的三种表现形式
形式1使用单引号()括起来的单个字符。如char c1 a; char c2 男; char c3 9;形式2直接使用Unicode值来表示字符常量‘\uXXXX’。其中XXXX表示一个十六进制整数。如\u0023 表示#。Java中还允许使用转义字符\来将其后的字符转变为特殊字符型常量。如char c4 \n;\n表示换行符char类型是可以进行运算的它都对应有Unicode码可以看作是一个数值ASCII码值。
演示
/*** author shbzhao* version 1.0* date 2023/8/26*/
public class CharBooleanTest {public static void main(String[] args) {//1.字符类型 char(2字节)//2.表示形式//2.1 使用单引号()括起来的单个字符char c1 a;char c2 1;char c3 男;char c4 ;//2.2 直接使用Unicode值来表示字符常量\uXXXX。其中XXXX表示一个十六进制整数。char c5 \u0036; //表示后买你System.out.println(c5);//2.3使用转义字符\来将其后的字符转变为特殊字符型常量。char c6 \n;//2.4char类型是可以进行运算的它都对应有Unicode码可以看作是一个数值ASCII码值char c7 97;System.out.println(c7);}
}
布尔型 布尔类型(boolean)只有两个值true、false常用于逻辑条件的判断如条件判断、分支结构、循环结构等 演示
// 布尔类型(boolean) 1字节
// 1.只有两个值true和false
boolean b1 true;
boolean b2 false;
// 不能使用0和1代替true和false
// boolean b3 0; //编译不通过// 常用于条件判断或循环语句中
boolean isStudent true;
if (isStudent){System.out.println(是学生);
}else{System.out.println(不是学生);
}
5 数据类型之间的转换
自动类型提升 自动类型转换数据类型表数范围的自动提升类型转换规则 容量较小的类型自动转换为容量大的数据类型容量是指表数范围的大小byte、short、char之间运算后为int类型char不能与short、int转换。
演示
/*** author shbzhao* version 1.0* date 2023/8/27* 演示基本数据类型之间的类型转换* 包括* 1.自动 类型转换(数据类型的精度\表数提升)* 2.强制 类型转换* 类型转换规则容量是指数据类型(表数范围)的大小* 1.容量较小的类型赋值给容量较大的类型时结果自动转换为容量大的数据类型* byte --- short --- int --- long --- float --- double* 2.byte、short char之间运算后为int类型:(特殊情况1)* byte short --- int,byte byte--- int,short short --- int* 3.char不能与short、int转换(特殊情况2)*/
public class BasicDataSwitch {public static void main(String[] args) {// 容量是指表数范围的大小// 如long型占8字节float型占4字节但是表述范围float更大long l1 115431543L;float f1 l1;float f2 2.45465412f;//long l2 f2; // 编译报错// byte --- int okbyte b1 1;int i1 b1 b1;// int --- byte//byte b2 i1 i1; // 编译报错// 特殊情况1byte short --- intbyte b3 11;short s1 12;//short s2 s1b3; // 编译报错int i2 s1 b3;// 特殊情况2char不能与byte、short进行类型转换char c1 10;//byte b4 c1; // 编译报错//short s2 c1; // 编译报错}
} 强制类型转换
强制类型转换将取值范围或容量大的类型强制转换为取值范围小或容量小的类型。强制类型转换符()在小括号内指定要转换为的数据类型。强制类型转换可能会导致精度损失。演示
/*** author shbzhao* version 1.0* date 2023/8/28* 演示强制类型转换的使用* 规则* 1.如果需要将容量大的赋值给容量小的类型需要进行强制类型转换* 2.强制类型转换符()在小括号内指定要转换为的数据类型* 3.强制类型转换可能会导致精度损失*/
public class ForceTypeSwitch {public static void main(String[] args) {// 自动类型提升 int --- doubledouble d1 12;// 尝试double --- int编译错误//int i1 d1;int i2 (int) d1;System.out.println(i2);long l1 666;short s1 (short) l1;System.out.println(l1);// 精度损失double d2 12.3;int i3 (int) d2;System.out.println(i3);int i4 128;byte b1 (byte) i4;System.out.println(b1);}
}
6 基本数据类型与String类型转换
基本数据类型--String类型使用包装类的parse方法。String类型--基本数据类型使用双引号拼接。注意String类型--基本数据类型时String数据的格式必须是能够转换的基本数据类型演示
/*** author shbzhao* version 1.0* date 2023/8/28* 演示String与基本数据类型之间的转换* 1.基本数据类型--String类型(使用包装类的parse方法)* 2.String类型--基本数据类型(使用双引号拼接)*/
public class StringToBasic {public static void main(String[] args) {// 基本数据类型--String类型(使用包装类的parse方法)int n1 100;float f1 1.1f;double d1 4.5;boolean b1 true;String s1 n1 BasicToString;String s2 f1 BasicToString;String s3 d1 BasicToString;String s4 b1 BasicToString;System.out.println(s1);System.out.println(s2);System.out.println(s3);System.out.println(s4);// String类型--基本数据类型(使用双引号拼接)// 需要通过基本数据的包装类调用parseXX方法String byteStr 127;byte b2 Byte.parseByte(byteStr);String shortStr 123;short sh2 Short.parseShort(shortStr);String intStr 321;int int2 Integer.parseInt(intStr);String longStr 321123321;long long2 Long.parseLong(longStr);String floatStr 12.3;float float2 Float.parseFloat(floatStr);String doubleStr 12.3;double double2 Double.parseDouble(doubleStr);//char类型调用charAt(0)方法String charStr 12.3;char char2 charStr.charAt(0);String booleanStr true;boolean boolean2 Boolean.parseBoolean(booleanStr);System.out.println(b2 sh2 int2 long2 float2 double2 char2 boolean2);}
}
7 进制运算
进制的分类
十进制decimal 数字组成0-9进位规则满10进1二进制bindary以0b或0B开头 数字组成0-1进位规则满2进1八进制octal很少使用以数字0开头 数字组成0-7进位规则满8进1十六进制bindary以0x或0X开头 数字组成0-9和a-f。a-f不区分大小写进位规则满16进1演示
/*** author shbzhao* version 1.0* date 2023/8/28* 演示二进制数* 用四种进制表示数字20*/
public class BinaryTest {public static void main(String[] args) {// 十进制int num1 20;// 二进制int num2 0b10100;// 八进制int num3 024;// 十六进制int num4 0x14;System.out.println(num1);System.out.println(num2);System.out.println(num3);System.out.println(num4); }
}
进制的转换 十进制 二进制 八进制 十六进制 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 a 11 1011 13 b 12 1100 14 c 13 1101 15 d 14 1110 16 e 15 1111 17 f 16 10000 20 10
其它进制转十进制
二进制转十进制从最低位右边开始将每一位上的数提取出来乘以2的位数-1次方。位数是指从右边数第几位。如0b10111*2^(4-1) 0*2^(3-1) 1*2^(2-1) 1*2^(1-1)。八进制转十进制从最低位右边开始将每一位上的数提取出来乘以8的位数-1次方。十六进制转十进制从最低位右边开始将每一位上的数提取出来乘以16的位数-1次方。 十进制转其它进制将十进制连续除以其它进制数直到商为0取每步的余数倒置就是对应的进制数。
十进制转二进制十进制数连续除以2直到商为0取每步的余数倒置十进制转八进制十进制数连续除以8直到商为0取每步的余数倒置十进制转十六进制十进制数连续除以16直到商为0取每步的余数倒置
二进制转八、十六进制
二进制转八进制将二进制数的每3位为一组从右开始个位数的值分别是4、2、1每一组对应转换为一个8进制数。二进制转十六进制将十六进制的每4位为一组从右开始个位数的值分别是8、4、2、1每一组对应转换为一个16进制数。 8 运算符
运算符是一种特殊的符号用以表示数据的运算、赋值和比较等等。
运算符的分类算术运算符、赋值运算符、比较(或关系)运算符、逻辑运算符、位运算符、条件运算符、Lambda运算符。 分类 运算符 算术运算符7个 - * / % -- 赋值运算符12个 - * / % | ^ 比较(或关系)运算符6个 ! 逻辑运算符6个 | ^ ! || 位运算符7个 | ^ - 条件运算符1个三元运算符 条件表达式?表达式1:表达式2; Lambda运算符1个 -Java新特性章节讲解
算术运算符 运算符 功能 范例 结果 正号 3 3 - 负号 b4; -b; -4 加 55 10 - 减 6-4 2 * 乘 3*4 12 / 除 5/5 1 % 取模取余 7%5 2 i 自增前先自增后赋值 a2;ba; a3;b3 i 自增后先赋值后自增 a2;ba a3;b2 --i 自减前先自减后赋值 a2;b--a a1;b1 i-- 自减后先赋值后自减 a2;ba-- a1;b2 字符串拼接 Helloworld Helloworld
赋值运算符
赋值运算符是将某个运算后的值赋给指定的变量。
基本赋值运算符如int n 1; 当两边数据类型不一致时可以使用自动类型提升或强制类型转换进行处理复合赋值运算符、-、*、/、%如n 3;等价于n n 3; 注意复合赋值运算符会进行类型转换底层具有强制类型转换符。演示
/*** author shbzhao* version 1.0* date 2023/8/28* 演示赋值运算符*/
public class SetValueTest {public static void main(String[] args) {int n 10;// 1.当两边数据类型不一致时可以使用自动类型提升或强制类型转换进行处理long l1 n; // 自动类型提升byte b1 (byte) n; // 强制类型转换// 2.允许连续赋值int a, b;a b 100;// 3.复合赋值运算符会进行类型转换底层具有强制类型转换符byte n1 12;n1 3; // 等价于n1(byte)(n13),强制类型转换为intSystem.out.println(n1);}
}
练习1
int n 10;
n (n) (n); // 等价于n n (n) (n)
// num 10 10 12先计算n和n
System.out.println(n); 关系运算符
关系运算符的结果都是boolean类型true或false。
关系运算符、、、、、!和!适用于基本数据类型和引用数据类型其它只适用于基本数据类型注意是赋值运算符是关系运算符 运算符 功能 范例 结果 等于 8 7 false ! 不等于 8 ! 7 true 大于 8 7 true 大于等于 8 7 true 小于 8 7 false 小于等于 8 7 false A instanceof B 检测A是否为B类的对象 ahhlt instanceof String true 逻辑运算符
逻辑运算符只对boolean类型进行操作结果也是boolean类型的值。 运算符 功能 和 表示且关系符号两边同时为true时结果为true。助记同1为11为true0为fasle |和|| 表示或关系符号两边只要有一个为true结果为true。助记有1为1 ! 表示非关系变量的值为true时结果为false。助记取反 ^ 表示异或关系符号两边的值不同时结果为true。助记有同为0不同为1 逻辑运算与短路运算的区别:
短路与()和逻辑与() 短路与()条件1 条件2若条件1为false则不再判断条件2。逻辑与()条件1 条件2若条件1为false继续判断条件2。注意开发中一般使用短路与除非特定情况才使用逻辑与。短路或(||)和逻辑或(|) 短路或(||)条件1 || 条件2若条件1为true则不再判断条件2。逻辑或(|)条件1 | 条件2若条件1为true继续判断条件2。
三元运算符
语法格式(条件表达式)?表达式1:表达式2运算规则如果条件表达式的值为true运算结果为表达式1否则为表达式2表达式1和表达式2必须是可以赋给接收变量的类型(可以自动转换或语法强转)
/*** author shbzhao* version 1.0* date 2023/8/28* 条件表达式的使用*/
public class ConditionTest {public static void main(String[] args) {int a 10;int b 99;int result (a b) ? a : b--;// a b为false返回第二个表达式b--先将b的值返回b再自减System.out.println(result result);System.out.println(b b);// 表达式类型与接收变量类型不同时必须满足类型自动转换或者强制转换int c a b ? (int)1.1 : (int)2.2;}
}
位运算符
位运算
计算机进行运算时都是对补码进行运算显示运算结果时将计算后的补码转为原码正数的原码、反码、补码都相同称三码合一负数的三码 反码原码除符号位不变其它位取反补码反码1。相应的负数的反码 补码-1符号位二进制的最高位最左边为符号位0代表正数1代表负数
位运算符
以二进制补码进行运算 运算符 功能 按位与全1为1 | 按位或有1为1 ^ 按位异或不同为1相同为0 ~ 按位取反每位都取相反值 左移符号位不变低位补0。左移n位相当于乘2的n次方 右移符号位不变用符号位补高位空缺。右移n位相当于除2的n次方 无符号右移低位溢出高位补0
演示
/*** author shbzhao* version 1.0* date 2023/8/28*/
public class BitOperatorTest {public static void main(String[] args) {/** 1.按位与()2 3* 正数的原码、反码、补码都相同* 2的三码00000000 00000000 00000000 00000010* 3的三码00000000 00000000 00000000 00000011* 2 3 00000000 00000000 00000000 00000010* 结果为2** 2.按位或()* */System.out.println(2 3);}
} 运算符优先级 优先级 运算符说明 Java运算符 1 括号 ()、[]、{} 2 正负号 、- 3 单元运算符 、--、~、! 4 乘、除、取余 *、/、% 5 加、减 、- 6 位移运算符 、、 7 关系运算符 、、、、、!、instanceof 8 按位与 9 按位异或 ^ 10 按位或 | 11 短路与 12 短路或 || 13 三元运算符 条件表达式?表达式1:表达式2; 14 赋值运算符 、、-、*、/、%、、、、、|、^