Java基础(一周汇总8.3--8.7)
Java基础:
声明:
1)仅作为个人学习,如有冒犯,告知速删!
2)不想误导,如有错误,不吝指教!
基础概念:
注释
“//” 这是单行注释文字
/*
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
注意:多行注释不能嵌套使用。
关键字
- 特点:关键字的字母全部小写。
常量
- 整数常量 整数,例如:-10、0、88等 小数常量 小数,例如:-5.5、1.0、88.88等 字符常量 用单引号括起来的一个字符,例如:'a'、'5'、'B'、'中'等 布尔常量 布尔值,表示真假,只有两个值true和false 空常量 一个特殊的值,空值,值为null
除空常量外,其他常量均可使用输出语句直接输出。
数据类型:
计算机存储单元
请查看计算机基础
java中的数据类型
数据类型 关键字 内存占用 取值范围 整数类型 byte 1 -128~127 short 2 -32768~32767 int(默认) 4 -2的31次方到2的31次方-1 long 8 -2的63次方到2的63次方-1 浮点类型 float 4 负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38 double(默认) 8 负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308 字符类型 char 2 0-65535 布尔类型 boolean 1 true,false 说明:
e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
在java中整数默认是int类型,浮点数默认是double类型。
变量:
变量的定义
在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。
定义格式:
数据类型 变量名 = 初始化值; // 声明变量并赋值
int age = 18;
System.out.println(age); ---------------------
// 先声明,后赋值(使用前赋值即可)
数据类型 变量名;
变量名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);
变量的注意事项:
- 在同一对花括号中,变量名不能重复。
- 变量在使用之前,必须初始化(赋值)。
- 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整数太大可能超出int范围。
- 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是double, double的取值范围是大于float的,类型不兼容。
标识符:
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则:
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
- 不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)。
Java中标识符的命名约定:
小驼峰式命名:变量名、方法名
- 首字母小写,从第二个单词开始每个单词的首字母大写。
大驼峰式命名:类名
- 每个单词的首字母都大写。
另外,标识符的命名最好可以做到见名知意
- 例如:username、studentNumber等。
类型转换:
- 自动类型转换
- 强制类型转换
运算符:
算数运算符
运算符和表达式
算术运算符
字符的+操作
字符串的+操作
赋值运算符
自增自减运算符
注意事项:
++和-- 既可以放在变量的后边,也可以放在变量的前边。
单独使用的时候, ++和-- 无论是放在变量的前边还是后边,结果是一样的。
参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或者--。
参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与操作。
关系运算符
- 自行百度
逻辑运算符
基础逻辑运算符
符号 作用 说明
& 逻辑与 a&b,a和b都是true,结果为true,否则为false
| 逻辑或 a|b,a和b都是false,结果为false,否则为true
^ 逻辑异或 a^b,a和b结果不同为true,相同为false
! 逻辑非 !a,结果和a的结果正好相反
短路逻辑运算符
三元运算符:
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/Relationship.java
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/countSum.java
数据输入:
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/inputDate.java
流程控制语句:
- 流程控制语句分类
- 顺序结构
- 分支结构if语句
- if语句格式1
- if语句格式2
- if语句格式3
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day2/demo/Process_control.java
switch语句:
- switch语句结构
- 练习
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/switchCycle.java
for循环:
- for循环结构
- for循环练习
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/forCycle.java
while循环:
- while结构
- while循环练习
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/whileCycle.java
循环细节:
- do-while循环结构
- 三种循环的区别
- 三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
- for循环和while的区别
- 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
- 死循环(无限循环)的三种格式
- for(;;){}
- while(true){}
- do {} while(true);
- 三种循环的区别
- 跳转控制语句
- 循环嵌套
Random:
- Random产生随机数
- Random练习
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day3/random.java
数组:
数组的定义以及格式
- 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致
- 格式:数据类型[] 数组名;数据类型 数组名[]
数组动态初始化,静态初始化
动态初始化:就是只给定数组的长度,由系统给出默认初始化的值
格式:数据类型[] 数组名 = new 数据类型[数组长度]
int[] arr = new int[3];
arr[0] = 赋值0
arr[1] = 赋值1
arr[2] = 赋值2
解释:等号左边:int:数组的数据类型;[]:代表这是一个数组;arr:代表数组的名称
等号右边:new:为数组开辟内存空间;int:数组的数据类型;[]:代表这是一个数组;3:代表数组的长度
静态初始化:
- 完整版:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
- 简化版:数据类型[] 数组名 = {元素1,元素2,...};
数组元素访问
- 索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
- 格式:数组名[索引];
内存分配 ----具体详看链接内容
单数组、多数组内存图以及多数组指向相同内存图 ----具体详看链接内容
数组操作的小问题
- 索引越界异常
- 空指针异常
数组遍历、最值
- 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。
- 最大值获取:从数组的所有元素中找出最大值
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day4/array.java
方法:
方法概述、定义以及调用
- 概述:方法是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集
- 注意:
- 方法必须先创建才能使用---定义方法
- 方法创建后并不是直接可以运行,需要手动使用后,才执行---方法的调用
- 注意:
- 概述:方法是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集
无参数方法的定义和调用
定义格式:
public static void 方法名(){
//方法体
}
//范例
public static void method(){
//方法体
} //调用格式
方法名()----method()
//方法的调用需要在main下使用
总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。
带参数方法的定义和调用
定义格式:
参数:有数据类型和变量名-数据类型 变量名
public static void 方法名 (参数1) {
方法体;
}
public static void 方法名 (参数1, 参数2, 参数3...) {
方法体;
}
注意:方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错,方法定义时,多个参数之间使用逗号( ,)分隔 ;
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错;
形参和实参
- 形参:方法中定义的参数
- 实参:方法调用中的参数
带返回值方法的定义和调用
定义格式:
public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
} //范例:
public static boolean isEvenNumber( int number ) {
return true ;
}
public static int getMax( int a, int b ) {
return 100 ;
}
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
调用格式:
数据类型 变量名 = 方法名 ( 参数 ) ;
isEvenNumber ( 5 ) ; //没有意义
boolean flag = isEvenNumber ( 5 ); //有意义
方法的返回值通常会使用变量接收,否则该返回值将无意义
方法的注意事项
不能嵌套定义
public class MethodDemo {
public static void main(String[] args) { } public static void methodOne() {
public static void methodTwo() {
// 这里会引发编译错误!!!
}
}
}
void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
public class MethodDemo {
public static void main(String[] args) { }
public static void methodTwo() {
//return 100; 编译错误,因为没有具体返回值类型
return;
//System.out.println(100); return语句后面不能跟数据或代码
}
}
通用格式
格式:
public static 返回值类型 方法名(参数) {
方法体;
return 数据 ;
}
解释:
public static 修饰符,目前先记住这个格式
返回值类型 方法操作完毕之后返回的数据的数据类型
如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return
方法名 调用方法时候使用的标识
参数 由数据类型和变量名组成,多个参数之间用逗号隔开
方法体 完成功能的代码块
return 如果方法操作完毕,有数据返回,用于把数据返回给调用者
定义方法时,要做到两个明确
- 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
- 明确参数:主要是明确参数的类型和数量
调用方法时的注意:
- void类型的方法,直接调用即可
- 非void类型的方法,推荐用变量接收调用
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day5/methodview.java
方法重载
概念:方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不相同,类型不同或者数量不同
注意:
重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
方法的参数传递(具体的详看代码链接)
- 基本数据类型的参数,形式参数的改变,不影响实际参数
- 对于引用类型的参数,形式参数的改变,影响实际参数的值
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day5/MethodOverloading.java
练习:
数组遍历:
需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]
思路:
因为要求结果在一行上输出,所以这里需要在学习一个新的输出语句System.out.print(“内容”);
System.out.println(“内容”); 输出内容并换行
System.out.print(“内容”); 输出内容不换行
System.out.println(); 起到换行的作用
定义一个数组,用静态初始化完成数组元素初始化
定义一个方法,用数组遍历通用格式对数组进行遍历
用新的输出语句修改遍历操作
调用遍历方法
数组最大值:
需求:设计一个方法用于获取数组中元素的最大值
思路:
定义一个数组,用静态初始化完成数组元素初始化
定义一个方法,用来获取数组中的最大值,最值的认知和讲解我们在数组中已经讲解过了
调用获取最大值方法,用变量接收返回结果
把结果输出在控制台
代码链接:https://github.com/xbhog/JavaBasis/blob/master/JavaStudy/src/day5/ArrTraveMax.java
完整项目代码:
Github:https://github.com/xbhog/JavaBasis
致谢:如果对您有帮助,希望随手一个star,感谢!!
Java基础(一周汇总8.3--8.7)的更多相关文章
- Java基础-线程安全问题汇总
Java基础-线程安全问题汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存泄漏和内存溢出(out of memory)的区别 1>.什么是内存溢出 答:内存溢出指 ...
- java基础知识文章汇总
将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规 ...
- java基础学习周计划之2--面向对象
JAVA面向对象第一天一. 知识点:1. 类和对象二. 关键问题(理论):1. 简述什么是类.什么是对象2. 简述基本类型变量与引用类型变量赋值时的差别3. 简述null的含义三. 关键代码(操作): ...
- java基础学习周计划之1--语言基础
JAVA语言基础第一天一. 知识点:1. 认识Linux操作系统2. JAVA开发环境3. Eclipse IDE二. 关键问题(理论):1. Linux中常用命令pwd.ls.cd的作用2. 简述J ...
- java基础 小知识点汇总篇
1.&和&& |和|| 的区别? a&b,会执行a,执行b ,得出结论 a&&b,会执行a,如果a false,则不执行b,直接返回false 2.Ma ...
- 【转】Java基础——面试题汇总
1.JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Runtime Env ...
- java基础学习周计划之3--每周一练
每周一练第一周 一. 关键代码:1.斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...数列第一项和第二项是1, 从第三项开始, ...
- Java基础知识常见面试题汇总第一篇
[Java面试题系列]:Java基础知识常见面试题汇总 第一篇 文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后 ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- 【Java面试题系列】:Java基础知识常见面试题汇总 第一篇
文中面试题从茫茫网海中精心筛选,如有错误,欢迎指正! 1.前言 参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定 ...
随机推荐
- 终于!我们把 CEO 炒了,让 ChatGPT 出任 CEO
️ FBI Warning:本文纯属作者自娱自乐,数字人的观点不代表 CEO 本人的观点,请大家不要上当受骗!! 哪个公司的 CEO 不想拥有一个自己的数字克隆? 想象一下,如果 CEO 数字克隆上线 ...
- hdu 5234
题意:求在不超过k的情况下,最多可以得到多少价值. 三维dp,结合01背包,第三维就是用来保存在不同的背包容量下能得到的最大价值,也就是第三维有很多状态. #include<iostream&g ...
- Kubernetes APIServer 最佳实践
1. kubernetes 整体架构 kubernetes 由 master 节点和工作节点组成.其中,master 节点的组件有 APIServer,scheduler 和 controller-m ...
- connect() failed (113: No route to host) while connecting to upstream
转载请注明出处: 用docker 搭建的服务,今天重启了一个容器之后,请求这个服务的接口都变成了 502, 但通过docker 查看日志,发现没有异常,端口也都是正常,在nginx的日志中看到了这段错 ...
- 搞了个Blazor工具站,域名一次性买了10年!
大家好,我是沙漠尽头的狼. 在 Dotnet9 上线在线小工具和小游戏后,服务器的压力感觉挺大的,打开25个页面,内存占用170MB左右,CPU保持在60~70%,看来Server真不适合搞这类交互较 ...
- 基于AHB_BUS的eFlash控制器RTL
eFlash控制器的RTL gvim 操作 gg -- 跳到首页 GG -- 按住shift,跳到尾部 ctrl+V --> 上下键选择行 --> shift+i -->输入 --& ...
- java - 正确关闭流
package stream; import java.io.*; public class FileReaderTest { public static void main(String[] arg ...
- [转帖]Linux 下rsync命令详细整理
https://blog.csdn.net/weixin_44052462/article/details/116134761 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面 ...
- [转帖]设置kafka 数据保留时间
https://www.cnblogs.com/gao88/p/12539112.html kafka 单独设置某个topic的数据过期时间kafka 默认存放7天的临时数据,如果遇到磁盘空间小,存放 ...
- [转帖]linux系统下grub.cfg详解和实例操作
linux系统下grub.cfg详解和实例操作 简介 grub是引导操作系统的程序,它会根据自己的配置文件,去引导内核,当内核被加载到内存以后,内核会根据grub配置文件中的配置,找到根分区所使用的文 ...