易雅达网站建设公司赣州网站建设平台

当前位置: 首页 > news >正文

易雅达网站建设公司,赣州网站建设平台,襄阳seo研究中心,门户网站html模板java ——概要、变量与运算符 ✍作者#xff1a;电子科大不知名程序员 #x1f332;专栏#xff1a;java学习指导 各位读者如果觉得博主写的不错#xff0c;请诸位多多支持#xff1b;如果有错误的地方#xff0c;欢迎在评论区指出 目录java ——概要、变量与运算符命令行…java ——概要、变量与运算符 ✍作者电子科大不知名程序员 专栏java学习指导 各位读者如果觉得博主写的不错请诸位多多支持如果有错误的地方欢迎在评论区指出 目录java ——概要、变量与运算符命令行java的环境搭建HelloWorld注释Commentjava API的文档总结关键字与保留字标识符java的命名规范变量数据类型整型浮点型字符类型布尔型基本数据类型间的运算编码情况String进制与进制间的转换运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符三元运算符命令行 d: 到D盘 dir 呈现目录 md java 创建文件夹名字为java cd d:\java 进入d盘中的java文件夹 cd… 退回到上一层目录文件夹 cd/ 回到整个盘D)下 用上下键可以调出之前使用到过的指令 del 1.doc 删除文件名为1.doc的文件 del *.txt 删除所有以.txt结尾的文件 rd team2 删除名为team2的文件夹目录前提team2是空文件 del team1 删除team1内容中的文件删除的还是文件 cd/ 推到盘的根目录位置 java的环境搭建 JDK java开发工具包包含JRE:运行环境虚拟机JVM核心类库 JVMjava虚拟机使java程序具有跨平台性 JDK在不同的操作系统不一样因为不同操作系统对应的JVM不一样 HelloWorld 创建一个java格式的文件 实现流程 先创建一个以java为后缀的文件通过记事本打开后形成源文件然后再通过命令javac.exe来对该文件进行编译形成.class文件字节码文件再对此进行java.exe形成结果 在编译文件前我们首先要到该文件所在的路径下生成字节码文件的名字是我们创建的类名 按提示将其添加 然后将main内添加一些内容 源文件修改后需要重新编译 注意java中需要严格区分大小写 注释Comment 特点注释内容不参与编译生成的.class文件中不包含注释的信息 文档注释java特有 注释内容可以被JDK提供的工具javadoc所解析生成一套以网页形式体现的该程序的说明文档包含作者和版本 多行注释不能嵌套使用 java API的文档 总结 1.JDKJREJVM三者之间的关系 JDKJREjava开发工具javac.exe,java.exe,javadoc.exe) JRDJVMJava核心类库 2.为什么要配置path环境变量 使某个程序比如javac.exe在任意目录下都可以运行 package my_first_java_code;public class 输出 {public static void main(String[] args) {System.out.println(name:);System.out.println(); System.out.println(address:);} }System.out.println();//这里是println意思是输出的占一行因此这里什么都不写的意思就是换一行 println理解为输出一段字符串后换行我们也可以使用print然后加\n达到换行的目的 运行结果如下 关键字与保留字 关键字 保留字现java版本尚未使用但以后版本可能会作为关键字使用goto、const 标识符 java对各种变量、方法、类等要素取名时使用的字符序列称为标识符 技巧凡是可以自己取名字的地方都叫标识符 标识符的命名规则 1.26个英文大小写、下划线、0-9或$ 2.数字不能作为开头 3.不能使用关键字和保留字但可以包含它们 4.严格区分大小写长度无线制 5.标识符不能含有空格 java的命名规范 包名多单词组成所有字母都小写 类目、接口名多单词组成时所有单词的首字母大写XxxYyyZzz 变量名方法名多单词组成第一个单词首字母小写第二个单词开始每个单词首字母大写 常量名所有字母都大写。多单词用下划线连接 以上要求如果不遵守也不会对编译产生什么影响但建议还是要遵守 起名字的时候尽量做到见名知意不要出现中文 变量 类型字符串、整型、浮点型、布尔类型…java要求的是强类型使用变量时需要规定变量类型 包含变量类型、变量名、储存的值 变量需要先声明赋值再使用未定义、未被赋值都不行 定义格式数据类型 变量名变量值; package my_first_java_code;public class 定义变量 {public static void main(String args) {int myAge18;System.out.println(myAge);//注意这里不加双引号因为不是字符串了} }变量都定义在作用域内作用域即是{}内出作用域后不能使用同一个作用域内不能定义同名的变量 数据类型 整型 分析一个byte有8个比特位由0、1组成一共有2^8256种组合由于要区分正负我们将它对半分开即可得到它的表数范围 特别的声明long型变量必须以“l”或L结尾 long L11234567;通常定义整型变量时使用int型 浮点型 float4字节\double8字节 浮点型表示带小数点的数值 1.如图即可产生一个问题同样都是占4个字节的空间为什么float表数范围比int、long还要大 ​ 因为float表示数值的方式是以幂次小数的方式 2.定义float变量时变量值的末尾从应该用“f”或“F”来表示 double d1123.1; System.out.println(d1); float d2123.1F; System.out.println(d2);3.通常定义浮点型变量时用double范围更大、精度更高、书写时可以省区f/F 字符类型 char一字符2字节 1.定义char型变量通常使用一段单引号’ ’ char c1a; char c2AB; //wrong:只能声明一个字符 char c3中; //right:可以写一个汉字或其它语言 2.表示方式声明一个字符转义字符 char c4\n; //right:换行符于是下列两端代码表示相同的意思: System.out.println(hello);System.out.print(helloc4);3.直接使用Unicode值来表示字符型常量 char c5\u0043;布尔型 boolean 1.只能取两个值之一true/false boolean bb1true; boolean bb2false;注意 与C语言不同C语言用0/1来判断而java就是用的true和flase来表示 2.常常在条件判断、循环结构中使用 基本数据类型间的运算 基本数据类型之间的运算规则 前提这里讨论的是7种数据类型变量间的运算不会包含boolean类型的 1.自动类型提升 byte b12; int i1129; byte b2b1i1; //wrong int i2b1i1; //right long l1b1i1; //right float f1b1i1; //right​ byte、char、short—— int—— long ——float ——double ​ 结论当表示数的容量小的数据类型的变量与容量大的数据类型的变量做运算时结果自动提升为容量大的数据类型 ​ 特别的当byte、char、short三种类型的变量做运算时结果为int类型就算是short和short这种同类型的它们的结果仍是int来接收 2.强制类型转换自动类型提升的逆运算 double d112.3; int i1d1; //wrongdouble d112.3; int i1(int)d1; //若输出i1值为12该操作为截断操作需要使用强转符强制类型转换后可能导致精度损失 编码情况 1.定义long型未加L—— 系统会默认为int型若遇到过大的整数则会编译失败 ​ 若float型未加F编译失败 2.对于整型常量默认类型为int型浮点常量默认类型为double型 short s11; short s2s11; //wrong:1的类型为int型String String类型变量的使用 1.String属于引用数据类型,翻译为字符串 2.声明String类型变量时使用一对 8 String s1hello world; System.out.println(s1);3.String类型 内可以什么都没有而char’ 内必须且只能放一个字符 String s; //right char c; //wrong4.String可以和8种基本数据类型变量做运算且运算只能是连接运算运算结果仍为String类型 int number1001; String numberStr学号; String infonumberStrnumber; //:连接运算我们来分析如下程序 情况1 public class StringTest {public static void main(String[] args) {String str hello;char ca; //a:97int num10;System.out.println(cnumstr); //107helloSystem.out.println(cstrnum); //ahello10System.out.println(c(numstr)); //ahello10System.out.println((cnum)str); //107hello} }由于a的ASCII码值为97因此再做cnuma10)时是一个字符类型整型的运算使用ASCII码来计算 情况2: package my_first_java_code;public class StringTest2 {public static void main(String[] args) {//输出 System.out.println(\t); //ASCLL码作加法运算结果为int型System.out.println(\t); //有Strin后代表连接System.out.println(\t); //前面的是char类型加法后面为String再连接System.out.println((\t*));} }运行结果如下 进制与进制间的转换 2进制以0b或0B开头 8进制以数字0开头表示 16进制0-9及A-F以0x或0X开头 public class Conversion_between_bases {public static void main(String[] args) {int num10b110;int num2110;int num30127;int num40x110A;System.out.println(num1 num1);System.out.println(num2 num2);System.out.println(num3 num3);System.out.println(num4 num4);} }运行结果如下 系统会将他们的值转为10进制 运算符 算术运算符 正号、加、字符串连接 1.除号 int num112; int num25; int result1num1/num2; System.out.println(result1); //2int result2num1/num2*num2; System.out.println(result2); //10double result3num1/num2; System.out.println(result3); //2.0double result4num1/(num20.0);
System.out.println(result4); //2.4double result5(double)num1/num2; System.out.println(result5); //2.42.取模号 ​ %取余运算——结果的符号与被模数的符号相同 被模数%模数余数 3.自增/自减 a先让a自增1后再使用a先使用再让a自增1对于–来说同理注意自增从自减不会改变本身变量的数据类型 short s110; s1s11; //wrong:这里的1是int型 s1(short)(s11); //right s1; //right:自增1不会改变本身变量的数据类型问题 byte b1127; b1; System.out.println(b1b1); //-128(按二进制的本质来理解即可)赋值运算符 - * / %1.赋值 //连续赋值 int i1,i2;
i1i210; //rightint i110;i210; //right2.对于 - * / %它们来说和自增自减一样不会改变本身变量的数据类型 3.开发中如果希望变量实现2的操作的方法 numnum2;
num2; //更好比较运算符 比较运算符“不能误写成” public class CompareTest {public static void main(String[] args) {int i10;int j20;System.out.println(ij); //判断是否相等System.out.println(ij); //将j的值赋值给i后输出boolean b1true; boolean b2false;System.out.println(b2b1); //判断是否相等System.out.println(b2b1); //赋值后输出} }逻辑运算符 逻辑与 | 逻辑或 ! 逻辑非短路语 || 短路或 ^ 逻辑异或两者不同值为true,两者相同值为false我们发现和|和||好像一样那它们有什么区别呢 说明逻辑运算符操作的都是boolean类型的变量 1.和的区别且 ​ 和的运算结果相同 当符号左边是false时两者都会执行符号右边的结果 ​ 不同当符号左边是false时会继续执行符号右边的运算不再执行符号右边的运算
短路** 2.|和||的区别或 ​ |和||的运算结果相同 当符号左边是false时两者都会执行符号右边的结果 ​ 不同当符号左边是false时|会继续执行符号右边的运算||不再执行符号右边的运算短路 【总结】开发者用短路语、||更好 位运算符 其中、|、^在逻辑运算符中也存在 移位操作符移动的是二进制 我们先引入进制的概念: 例如数值15 15-十进制表示1*1015*100 而15换算成八进制即为17 那么我们知道15的二进制表示为11111111称为15的二进制序列 整型的二进制表示原码、反码、补码 15 整数在C语言可以存放到int类型的变量中int类型是4个字节-32bit,其中最高位32位叫做符号位 15 00000000 00000000 00000000 00001111 -原码 15 00000000 00000000 00000000 00001111 -反码 15 00000000 00000000 00000000 00001111 -补码 正整数的原码、反码、补码相同 -15 由于它是负数它的最高位是1表示负数 -15 10000000 00000000 00000000 00001111 -原码 负数的原码最高位为1其它位不变 -15 11111111 11111111 11111111 11110000 -反码原码的符号位不变其他位按位取反 -15 11111111 11111111 11111111 11110001 -补码反码的二进制位加一即得补码 整数在内存中的存储是二进制的补码移位操作符移动的是存储在内存中的补码 左移 #includestdio.h int main(){int a 4;//00000000 00000000 00000000 00000100 - 4的原码、补码int b a 1; //把a向左移动一位printf(a%d b%d\n, a, b);return 0; }运行结果如下 00000000 00000000 00000000 00000100 - 4的补码向左移动移位后移动后结果是00000000 000000000 00000000 00001000补码向左移动一位那么对应的值b为8 左移有扩大一倍的效果 右移 1.逻辑右移右边丢弃左边补0 2.算术右移右边丢弃左边补原符号位一般编译器采用算术右移 右移方式取决于编译器 对于移位操作符不要移动负数位这个标准是未定义的 右移有缩小一倍的效果 三元运算符 格式条件表达式表达式1表达式2 逻辑条件表达式true ——表达式1(且表达式1作为整个表达式的值) ​ 条件表达式false——表达式2(且表达式2作为整个表达式的值) //找ab中的较大值 int max(mn)?m:n //a如果大于b则输出a否则输出b要求表达式1和表达式2要统一类型 三元运算符是可以嵌套使用的 //获取三个数的最大值(n1,n2,n3) int max1(n1n2)?n1:n2; int max2(max1n3)?max1:n3; //这里可以嵌套但可读性太差了三元运算符与if-else 凡是可以使用三元运算符的地方都可以改写成if-else但逆过来就不一定了 4的补码向左移动移位后移动后结果是00000000 000000000 00000000 00001000补码向左移动一位那么对应的值b为8 左移有扩大一倍的效果 右移 1.逻辑右移右边丢弃左边补0 2.算术右移右边丢弃左边补原符号位一般编译器采用算术右移 右移方式取决于编译器 对于移位操作符不要移动负数位这个标准是未定义的 右移有缩小一倍的效果