| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> java基础笔记 -> 正文阅读 |
|
[Java知识库]java基础笔记 |
Java编程语言 写程序的叫:编译器 程序执行叫:(jvm)虚拟机 Java的特性: 纯面向对象 跨平台 Java的跨平台 ?平台:win ????mac ???Linux 跨平台: Java程序可以在任意操作系统上运行 通过jvm可以实现跨平台 总结:在需要运行的java应用操作系统,安装一个与操作系统对应jvm(java虚拟机)即可 JRE 是java程序运行环境,包括JVM和核心类库 JDK 是java程序开发工具包,包括JRE和开发工具 工具: 编译工具(javac.exe) ???运行工具(java.exe) Javac.exe负责编译 ????java.exe负责运行 一:创建自己项目的规则 命名规则: 项目名:首字母小写,第二个单词首字母大写 包名:小写字母 一般公司域名:www.softeem.com==com.softeem 类名:每一个单词首字母都大写 包名:就是文件夹,对类进行分类管理,方便快速查找,起名要见名知意 Src目录:用来存放编写的java代码 二:注释: 说明代码的含义 单行注释:// 多行注释:/* ?*/ 文档注释:/** ?*/ ????工具javadoc.exe ?生成帮助文档 ?类似说明书 Public ?class ?HelloWorld { /* *public 表示公开的 *class ?类 *HelloWorld 类名 */ //主函数main 固定格式(程序执行的入口) Public ?static ?void ?main ?(String[] args){ /* *public 表示公开的 *static 表示静态的 *void 表示无返回的 *main 方法名 * (string[] args) 表示参数 */ //输出语句 System.out.println(“******”); } } 三:输出语句 //+ln系统向外换行打印+输出的内容 System.out.println(“******”); //不换行打印输出内容 System.out.print(“******”); 四:转义字符 \n是换行 \t 制表符(tab键) \u000d ?表示换行 \b 倒退一个字符 \”?双引号 \\ 反斜杠\ 五:变量 如何创建 数据类型 ?变量名=变量值 1.常用的基本数据类型: 数据类型 ?????????????关键字 整数 ??????????????????int 浮点 ??????????????????double 2.string类型 :字符串类型 3.拼接:+ String name=”李白”; System.out.println(“我的名字叫:”+name); 输出结果:我的名字叫:李白 Public ?class ?demo01 { Public ?static ?void ?main ?(string[] args){ Int min=lnteger.MIN_VALUE; ???//获取int的最小值 Int max=lnteger.MAX_VALUE; ??//获取int的最大值 Int ?age=18; double ?ml=185.2; String ?a=”遇事不决 可问春风” System.out.println(“年龄:”+age); System.out.println(“身高:”+ml); System.out.println(a); } } 输出结果是 ???年龄:18 身高:185.2 遇事不决 可问春风 scanner
接收键盘输入的 ??因此称呼为键盘扫描器
Scanner ?对象名=new ?Scanner(System.in);
对象名.next类型() ; 如果是string 直接next();
?in.close Public ?class ?demo01 { Public ?static ?void ?main ?(string[] args){ //获取键盘扫描器 Scanner ??in=new ?Scanner(System.in); //提示用户输入 System.out,println(“请输入用户名字”); //接收键盘输入的信息 ??并赋值给name String ???name=in.next(); //提示用户输入 System.out.println(“输入年龄”); Int ??age=in.nextint(); System.out.println(“姓名为:”+name+”\n年龄为:”?+age ); //关闭键盘扫描器 in.close; } } 第二节课 一:Java数据类型 基本数据类型和引用数据类型
基本数据类型分八种:(四大类) 整形 :byte(字节) ??short(短字节) ??int ??long 小数: double ?float 判断: boolean ???????(真,假) 字符:char ??????(张,李) 2.八大基本数据类型的取值范围: 整形 ?????????????字节 ????????????取值范围 byte ??????????????1 ????????????????-128到127 short 2 -32768到32767 Int (默认类型) ????????4 ???????????-2147483648到2147483647 long ???????????????8 注意:整数默认类型是int ,随意给long值的情况下,如果超出了最大值需要在后面加上L 浮点类型 ???????字节 ????????????取值范围 float ??????????????4 ???????????????单精度小数精度六-七位 double ????????????8 ????????????????双精度小数精度 十六位 注意:浮点类型的默认是double ?,如果想将一个double给一个float在后面加f 字符 ??????字节 ????????????取值范围 char ????????2 ????????????????0-65535 ?Unicode编码 String(字符串) char ?a=’男’; ???string ?b=”春风不解” 布尔 ???????????字节 ????????????????取值范围 boolean ???????????1 ???????????????true(真)/false(假) boolean???a=false; 运算符: 算数运算符,逻辑运算符,关系运算符,赋值运算符 算数运算符: + ??加法 - ??减法 * ??乘法 / ??除法 % ??取余 ++ ?自加1 -- ??自减1 在使用加法运算中,不可以与字符串相加,否则作为拼接 Int a=1 ?int ?b=2 String ?name=a+”名字”+b+a; System.out.println(name); 输出结果:1名字21 ++a表示自加1 ?前自增 ?先运算在赋值 a++ 表示 ???后自增 ???先赋值在运算 ?? 在同一个表达式 有多个数据类型 double ?d=12+12324L+8.5f+’a’; boolean不能参与算式运算 ?其他的都可以 类型的级别 Byte ?short ?char ----------int-------long--------float---------double(级别最高) 数据类型转换: 分为自动转换和强行转换
小范围的数据赋值给大范围的,会自动转换为大范围的数据类型
大范围转小范围 ???写法:(类型)变量名 Int c=1; Byte d=(byte)c; Byte e=(byte)128; int ?d=(int)(12+12324L+8.5f+’a’); ??//强行转换 比较运算符
例题: Public ?class ?demo01 { Public ?static ?void ?main ?(string[] args){ System.out.println(“请输入钱”); //获取键盘扫描器 Scanner in=new ?scanner(system.in) Int ?a=in.nextint(); System.out.println(“请输入你的名字”); String ?name=in.next(); //charAt(); ??表示在这个字符在那个位置 ?从0开始计算 //调用方法 ?取得 ?第一个字 Char ??cl=name.charAt(0); Char ??ci=(char)(cl+510); System.out.println(“女方的名字”+ci); } } 第三节课 一:逻辑运算符 && ?(短路与) ??????????????两边为true ,结果为true ??????????????????????????一边为false,结果为false ?????????????????????????短路的特点,符号左边为false 右边不在运算(短路) || ?(段落或) ??????????两边为true,结果为true 但凡一边为true,结果为true 短路的特点,符号左边为true,结果为true 右边不在运算(短路) !(取反) ???????????????!false 结果是true ?????????????????????????! true结果是false 二:三目运算符 三目运算符的使用格式 条件表达式? ??值1 ??: 值2 ???????????????true ?????false Int ?a =50>40&&40>20?1:2; System.out.println(a); 输出结果:1 嵌套: a=45 ???b=25 ?c=60 Int ?max=a>b?a>c?a:c :b>c?b:c; 输出结果为60 三:Ramdom随机数 创建随机数 方法一: Ramdom ??对象名=new ?Random(); //创建随机数 Ramdom ?rd=new ?Random(); //获取随机数 ??范围为1-20之间 Int ?i=rd.nextInt(bound:20)+1; System.out.println(“获取的随机数为:”+i); System.out.println(rd.nextln(bound:100));??????//写入100的话,范围是0-99 //负数 System.out.println(-rd.nextint()); ?????-----随机出来的是负数 [重点]: 20+rd.nextInt(dound:80) ??范围为[20----99] 方法二: Math.random() Math.random() ????-----------在0-1之间随机生成一个小数 使用方法: System.out.println(Math.random()); //生成0-10之间的是小数 System.out.println(Math.random()*10); //生成0-10之间的整数 System.out.println((int)(Math.random()*10)); 程序结构:(1)顺序结构,从头到尾 (2)选择结构if else 四:条件语句 if 1:if(条件表达式){ ????.........语句 } 2:if(条件表达式) 语句; ????单独的if可以不加括号{} 3:if(条件表达式){ ?????.......语句 }else{ } 4:if(条件表达式){ }else ?if(条件表达式){ }else{ } 列题: if(a>b){ System.out.println(”去攀岩“); ??????????????//if成立执行 }else ?if(a==b){ ??????????????????????????????//if不成立执行else if ,判断if System.out.println(”去爬山“); }else{ ??????????????????????????????????????//判断if不成立,执行下面的else System.out.println(”去旅行“); } ![重点]! If ?else来进行比较字符串 //判断字符串内容是否一致使用equals 比较内容.equals(要比较的内容) 比较内容.equals IgnoreCase(要比较的内容) ?作用是可以忽略大小写 例题: String a=in.next(); String b=in.next(); If(a.equals(b)){ ?System.out.println(“正确”); } 选择结构switch case: 条件比较规律,需要进行分类的时候使用 格式: switch(整数表达式或者字符串){ case 结果1: ?语句1; ??break; case 结果2: ?语句2; ??break; case 结果3: ?语句3; ??break; ........... ??????default: 语句; } case :针对括号的里面计算内容进行匹配 default :找不到对应的case,去执行default后面的语句 switch映射到对应的case以后,如果加break终止,会一直往下执行下面的case,不管是否满足都会执行 例题: ??Scanner in=new Scanner(System.in); ??//输入年龄 int ?a=in.nextInt(); ?? ??switch(a/10){ ??????Case 1: ??????????System.out.println(“儿童”); Case 2: ??????????System.out.println(“少年”); Case 3: ??????????System.out.println(“中年”); Case 4: ??????????System.out.println(“老年”); ??????default: ??????????System.out.println(“你输入有误,请从新输出”); } 五:循环 for循环 ???while循环 ???do.......while循环 一:While循环 语法结构 While(条件表达式或者条件运算){ ? } 用法: 1.定义计数器(记录循环次数) Int ?a=0; 2.用计数器构成条件语句 while(a<10){ ?3.让计数器逐渐接近条件语句的临界值 a++; } 2.break:是循环终止的意思 列题: Public ?class ?demo01 { Public ?static ?void ?main ?(string[] args){ //计数器 Int ?a =0; While(a<3){ ?System.out.println(“循环”); a++; break;} ????????????????-------break终止结束循环 } ??} 二:do.......while循环 do{ 代码块 }while(条件表达式或者条件运算); 先执行一次代码块,再去判断条件语句,如果成立就循坏执行代码块,直到条件不成为止 案例:用于登陆功能 for循环 格式: for (表达式1; 条件表达式; 表达式2){ 代码块 }; 格式说明: 表达式1:一般情况下,表达式1用于定义计算器 条件表达式:一般情况下,用计算器构建条件语句 表达式2:一般情况下,让计算器逐渐接近条件语句的临界值 列题: Int n=0 for(System.out.print(1);n<3;System.out.print(2) ){ ?System.out.print(3); n++; } 输出结果为: 132 ???????????32 ???????????32 ?? 注意: 1.表达式1最先执行,并且只执行一次 2.条件表达式第二个执行 3.如果条件表达式成立,就先执行代码块 4.代码块执行完之后,再去执行表达式2,表达式2执行完之后,再去判断条件表达式,依次循环 for循环嵌套 for(;;){ for(;;){} } 双重for循环 外层的循环,先执行一次,里层的循环要全部执行完毕 里层的for循环执行完毕之后,才开始外层for循环的下一次循环 列题: //验证码池子 String codePool=”QWERTYUO1223245姑羡” //从验证码池子中随机五个字符出来拼接成验证码 //创建随机数 Random rd=new ?Random(); //定义一个存放验证码的变量 String ?code=””; //循环五次,每次随机一个字符 for(int i=0;i<5;i++){ //在字符串长度范围内生成随机数,用来从验证码池子中随机抽取字符 [重点] //获取字符串的长度(字符串中有多少个字符) //用法 ?字符串.length() int ?index =rd.nextint(codePool.length()); //随机拿取一个验证码的位数的字符 Char c=code.charAt(index); [重点] //每取出一个字符,追加到验证码的末尾 Code+=c; } System.out.println(“验证码为:”+code); //创建键盘扫器 Scanner in=new Scanner(System.in); //接收输入的内容 String shuru=in.next(); //比较字符串内容是否相等,并且忽略大小写 If(shuru.equalsignoreCase(code)){ System.out.println(“输入正确”); } } ?for ??(当多重循环时)
列如: out:for(int i=1;i<=10;i++){ for(int j=1;j<=4;j++){ If(j==3){ //这里的break out;结束指定循环 break out; } } } While ?do ?while ?for循环:三个循环分别什么时候使用
数组 Java中的数组:java中可以用来存放多个数据类型相同的数据 定义数组的方式: 方法一: 类型 [] 数组名 =new 类型[长度]; 方法二: 类型 [] 数组名={值1,值2,值3........值n}; 方法三: 类型 [] 数组名=new 类型[]{值1,值2,值3........值n}; 格式一:适用于不清楚数组中具体会存放那些数据时 格式二.格式三:适用于知道数组的具体存放的数据时 使用数组需要注意的问题:
格式: 定义数组的格式一:? //定义了一个可以存放4个int类型整数的数组 int [] ?nums=new ?int[4]; //定义了一个可以存放7个String类型字符串的数组 String [] ?names=new ?String[7]; 定义数组的格式二: String [] wifes={“姑苏” , ”羡” , ”忘”}; double [] salary={100.0 , 200.0 , 300.0}; 定义数组的格式三: int [] arys=new ?int[]{4 , 5 , 6 , 7 }; [注意]: //直接输出数组,会输出数组在内存中的地址值 //如果想要格式化输出数组内容: ??Arrays.toString(数组名) System.out.println(“数组的内容为:”+Arrays.toString(wifes)) 数组中常用的方法: 1.格式化输出数组: ?Arrays.toString(数组名) 2.获取数组的长度: ?数组名.length 3.获取数组在某个位置(下标)上的元素: ?数组名[下标] 4.修改数组中某一个位置上的元素: ?数组名[下标] = 值; 5.?数组的排序: Arrays.sort(数组名); ??????????????????????// 顺序从小到大 6.数组的扩容和缩容:Arrays.copy0f(原数组,扩容或缩容之后的数组的长度) ??????如果copy0f之后的数组长度小于原数组的长度,就是缩容 ??????如果copy0f之后的数组长度大于原数组的长度,就是扩容 ??????扩容和缩容都是在数组的末尾处进行的 注意: ?扩容和缩容之后,都会产生新的数组,原来的数组就不存在了 注意: 获取字符串的长度: ?字符串名.length() 第二条:获取数组的长度: System.out.println(“数组的长度为:”+数组名.length); 第三条:获取数组在某个位置(下标)上的元素: 注意: 数组是从0开始的 System.out.println(“数组的第3个内容为:”+数组名[2]); 第四条:修改数组中某一个位置上的元素: 其他的数组内容不会发生改变 wifes[3]=”姑苏”; System.out.println(Arrays.toString(wifes)); 数组的遍历(将数组中的元素逐个访问到): //获取数组第一个元素: //访问数组最后一个元素 方式: 数组名.length-1; System.out.println(数组名[数组名.length-1]); 遍历for循环(固定格式): //循环中的i表示 数组的下标; //要遍历数组 i需要从 0 ??到 ??数组名.length-1 ?????逐渐增加 for(int i=0 ; ?i<数组名.length-1 ; ?i++){ } 第五条:数组的排序 一般是从小到大排序的 格式: ? Arrays.sort(数组名); 例如: Arrays.sort(数组名); System.out.println(“排序之后的分数”+Arrays.toString(数组名)); 六:数组的长度一旦定义成功,不可改变,改变之后就会产生新的数组 String[] wifes={“姑””苏””羡”}; //不可以这样改变 wifes={“姑””苏””羡””羡”} 数组的扩容和缩容 数组的扩容:在数组中扩充位置 格式: Arrays.copy0f(原数组,扩容或缩容之后的数组的长度) wifes=Arrays.copy0f(wifes, newLength:wifes.length+1); ????//在末尾扩充一个位置 //如何扩容或缩放的位置是数字,就是代表数字的长度是多少 wifes=Arrays.copy0f(wifes, 2); ?? 二维数组 Java 中没有严格意义的二维数组,所谓的二维数组就是数组中的数组 (一:)二维数组 ?(格式): 一: 数据类型[][] 数组名 = new 数据类型[有多少个一维数组] [每个一维数组中有多少个元素] 二: 数据类型[][] 数组名 = new 数据类型[有多少个一维数组] [每个一维数组中有多少个元素]{{},{}} 用法:
int[][] array = new int[2][3];
int[][] array = new int[][]{{1,2},{3,4},{5,6}}; (二:)输出二维数组中的一维数组: (1):int类型输出需要加:Arrays.toString(); int[] [] a=new int[][]{{1,1,1},{2,2,2,2},{3,3,3,3,3}}; System.out.println(Arrays.toString(a[1])); (2):String类型输出需要加:Arrays.toString(); String[][] n=new String[][]{{"姑苏","姑苏"},{"云梦","云梦"}}; System.out.println(Arrays.toString(n[0])); (3):cher类型正常输出即可 char[][] b=new char[][]{{'a','b'},{'v','n'}}; System.out.println(b[0]); (三:)输出二维数字中的某个元素: a[1][1]; ????????????????n[1][1]; ??????????????b[1][2]; (四:)获取二维数组中有几个一维数组 char[][] chars =new char[][]{{'a','b','c'}, {'d','e','f','z'},{'g','h','i'}}; 方法: 二维数组名.length; System.out.println("二维数组的长度"+chars.length); (五:)获取第一个一维数组中有多少个元素(长度)? System.out.println("第一个一维数组中有多少个元素"+chars[0].length); 例题: //二维数组的遍历 -->双重for // 这个for循环遍历的是有多少个一维数组 for (int i= 0;i<chars.length;i++){ //内循环遍历每个一维数组中有多少个元素呀 for (int j = 0;j<chars[i].length;j++){ System.out.print(chars[i][j]+"\t"); } System.out.println(); } } } |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/28 6:10:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |