10. java基础知识(下)
文章目录
- 一、一带而过
- 二、字符串类型String
- 1. 简单了解
- 2. 关于结束符'\0'
- 3. 自动类型转换与强制类型转换
- 三、API文档与import导包
- 1. API文档
- 2. import导包
- 四、java中的数组
- 1. 创建
- 2. 遍历
- 3. 补充
- 4. Arrays类
- ① 简单介绍
- ② 练习
- 五、方法的重载
- 六、规范约束
- 七、内容出处
一、一带而过
① java中没有指针的概念,引用类型可以简单理解为其替代品
② java中常量定义为final;c语言的c11标准中,用const定义常量
java菜鸟教程
③ 正则表达式需要自己去谷歌上了解一下–很重要 不过在公司开发时一般会让我们直接用别人的,很少让自己写。
二、字符串类型String
1. 简单了解
c语言中是没有这个数据类型的
c语言中的字符串怎么保存
练习方式:
① 菜鸟教程
② java官方文档 – 内容比较新
中文版
package com.practice.demo;public class Main {public static void main(String args[]){String str1 = "Hello";String Str2 = " Word";System.out.println("str1 = " + str1);System.out.println("Str2.length() = " + Str2.length());System.out.println(str1 + Str2);System.out.println(str1.concat(Str2));char[] chars = str1.toCharArray();System.out.println("chars = " + chars);for(int i = 0; i < str1.length(); ++i){System.out.println("chars = " + chars[i]);}System.out.println("str1.toUpperCase() = " + str1.toUpperCase());}
}
2. 关于结束符’\0’
c语言:字符串是字符数组,需要通过’\0’标记字符串结尾。在定义字符数组时也需要给’\0’预留出位置,否则就会出现不可预料的后果。‘\0’也可以防止内存访问越界。
java语言:虽然Java的String类也是基于字符数组的方式实现的(这里说的是String这个数据类型的内部实现方式),但是java里没有’\0’这回事。因为java是面向对象语言,所以java中的String类不仅是一个字符数组,它是一个封装了字符数组的不可变对象,它内部通过字符数组和其它元数据(如:length)来管理字符串。length属性直接存储字符串的长度,可以直接根据这个长度判断字符串的结束位置。我们遍历字符串时,可以通过length判断字符串长度,从而避免越界访问
3. 自动类型转换与强制类型转换
使用时都需要注意,用不好就容易出错:
自动类型转换:从低到高
强制类型转换:从低到高
小品:主角与配角
可以结合这个小品理解:
前半段 – int(朱时茂) 与 char(陈佩斯) 上个世纪char也曾辉煌过,但是现在实际开发过程中,除了开发底层的一些东西时会用到char,其余时候几乎不常用
后半段 – String(朱时茂) 与 char(陈佩斯) 实际开发过程中,明明有写好的函数,非得自己写
三、API文档与import导包
1. API文档
jar包:创建java项目时通常会让我们导入jar包,这里面存放我们开发需要的一些库函数之类的东西
API文档:jar包中内容的说明文档
2. import导包
等同于c语言中#include<>的作用。假设我在demo包里开发,现在我想用tool包里的东西,此时就需要使用import导包。jar包里的东西默认所有包都可以直接用,因此不需要另外用import导包
例如:
我在Main.java中使用Student.java里的内容不需要用import导包,因为Main.java和Student.java同属于demo包。
但是我要在Main.java里使用Teachar.java里的内容就需要用import导包,因为Main.java在demo包里,而Teacher.java在tool包里,它俩不属于同一个包。
我们都知道.length()方法在java.lang包里,但是在Main.java里用它时不需要用import导包。这是因为java.lang已经包含在我们创建项目时导入的jar包里了,这个jar包里所有的东西默认是可以直接用的。
不同的目录下可以有同名的java类,导包时注意不要导错。
例如:
四、java中的数组
1. 创建
① 声明:
② 初始化:
2. 遍历
3. 补充
上述java数组其实不是特别常用,因为它属于静态数组。
4. Arrays类
① 简单介绍
Arrays是java自带的一个库,它里面提供了一些查询、排序等方法,帮助我们进行开发工作。
位置:
② 练习
五、方法的重载
方法:其实就是c里面的函数,只不过在java里换了个名字而已
方法的重载:一是方法名相同,二是参数个数或者参数类型不同。跟函数的返回值无关。
java的底层源码也用到了重载:
好处:只需要定义一个方法名就可以应对不同的输入情况,用起来更方便。
六、规范约束
该部分具体内容可以参看阿里java开发手册
补充:驼峰命名法起源于:Perl语言(脚本语言中的瑞士军刀)
七、内容出处
java
相关文章:
10. java基础知识(下)
文章目录 一、一带而过二、字符串类型String1. 简单了解2. 关于结束符\03. 自动类型转换与强制类型转换 三、API文档与import导包1. API文档2. import导包 四、java中的数组1. 创建2. 遍历3. 补充4. Arrays类① 简单介绍② 练习 五、方法的重载六、规范约束七、内容出处 一、一…...
kafka 在Linux安上的装部署
一、前言 Kafka 是一个分布式流处理平台,在大数据领域有着广泛的应用。在 Linux 系统上安装部署 Kafka 可以为我们搭建高效的数据处理环境。本教程将详细介绍在 Linux 中安装和部署 Kafka 的步骤。 二、准备工作 2.1 系统要求 确保你的 Linux 系统已经安装并配置…...
kill-start系统进程的研究
kill/start系统进程的研究 声明:内容的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 目录 kill/start系统进程的研究Windows系统进程简介特点系统进程 tas…...
【系统架构设计师】2024年下半年真题论文: 论面向服务的架构设计(包括解题思路和参考素材)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年下半年 试题1)解题思路论文素材参考面向服务的架构(SOA)概念和特征面向服务的架构关键技术面向服务的架构设计原则面向服务的架构设计案例分析SOA设计面临的挑战与应对策略真题题目(2024年下半…...
吴恩达深度学习笔记:序列模型(Sequence Models) 1.1-1.2
目录 第五门课 序列模型(Sequence Models)第一周 循环序列模型(Recurrent Neural Networks)1.1 为什么选择序列模型?(Why Sequence Models?)1.2 数学符号(Notation) 第五门课 序列模型(Sequenc…...
【Spring】Spring Web MVC基础入门~(含大量例子)
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:什么是Spring Web MVC 1:Servlet 2:总结 二:MVC …...
使用ThorUi
摘要: 官网 今天遇到一个老项目,使用的是ThorUi组件库!之前没有用过这组件库,所以记录一下不同框架是使用情况! ThorUI 是一个基于 Thorium 的 UI 框架,用于构建跨平台的桌面应用程序。如果你打算使用 Thor…...
【Promise】自定义promise
文章目录 1 定义整体结构2 Promise 构造函数的实现3 promise.then()与promise.catch()的实现4 Promise.resolve()与Promise.reject()的实现5 Promise.all与Promise.race()的实现6 Promise.resolveDelay()与Promise.rejectDelay()的实现 1 定义整体结构 /*自定义 Promise */ (f…...
Docker容器部署Windows系统教程
本章教程,使用Docker容器部署一个Windows操作系统容器。 一、拉取容器 dockurr/windows:latest二、运行容器 docker run -dit --name win11 -v $PWD:/share -v /opt/iso/win11.iso:/custom.iso -p 3389:3389 -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-tim…...
js id数组转字符串
在 JavaScript 中,将数组转换为字符串有几种常见的方法。每种方法都有其特定的用途和格式。以下是一些常用的方法: 1. Array.prototype.join(separator) join 方法将数组的所有元素连接成一个字符串,并使用指定的分隔符(默认为逗…...
如何在 Android 上增加 SELinux 权限
SELinux(Security-Enhanced Linux)是一种强制访问控制(MAC)机制,它为 Android 系统提供了额外的安全层。通过 SELinux,系统管理员可以定义细粒度的安全策略,限制进程对文件、网络和其他资源的访…...
MySQL:数据类型建表
问题:我想建一个名为create和database的库可以吗? 如果按照一般的类型来建带有关键字的库 就会出现报错 如果我们这样写的话:关键词 ,则会建库成功。 选择要进行操作的数据库 use数据库 判断选择的库是否成功 删除数据库 drop…...
Linux:版本控制器git的简单使用+gdb/cgdb调试器的使用
一,版本控制器git 1.1概念 为了能够更方便我们管理不同版本的文件,便有了版本控制器。所谓的版本控制器,就是能让你 了解到⼀个文件的历史,以及它的发展过程的系统。通俗的讲就是⼀个可以记录工程的每⼀次改动和版本迭代的⼀个…...
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:WebStorm 目录 问题概述 原因 解决方案 解决方法 潜在问题修改 最终效果呈现 额外内容 管理员界面路由配置 WebStorm背景更换 法一: 法二: 问题概…...
力扣力扣力:91.解码方法
91. 解码方法 - 力扣(LeetCode) 在完成动态规划入门之后,我们先整一个中档题,也是前面简单题的变体。 分析思路: 在拿到最终结果之前,我们应该明确什么样的数字序列能够解码。 规则1:由于只有…...
一些面试题总结(二)
21、TCP的四次挥手? 在断开TCP连接时,需要通过四次挥手来断开,过程是: (1)客户端向服务端发送FIN1和序列号SEQx的数据包,用来关闭客户端到服务端的数据传送。然后客户端进入 FIN-WAIT-1 状态。 (2)服务端接收FIN后,…...
Hive-testbench套件使用文档
Hive-testbench套件使用文档 hive-testbench 是hortonworks的一个开源项目,用于测试和基准测试 Apache Hive 的工具集。它提供了一系列的测试数据集和查询样例,用于评估和比较 Hive 在不同配置和环境下的性能。hive-testbench 的主要目标是模拟真实的大规模数据集和复杂查询…...
大数据新视界 -- 大数据大厂之 Impala 性能优化:新技术融合的无限可能(下)(12/30)
💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...
Python | Leetcode Python题解之第540题有序数组中的单一元素
题目: 题解: class Solution:def singleNonDuplicate(self, nums: List[int]) -> int:low, high 0, len(nums) - 1while low < high:mid (low high) // 2mid - mid & 1if nums[mid] nums[mid 1]:low mid 2else:high midreturn nums[l…...
AHB Matrix 四星级 验证笔记(2.4) Tt3.3AHB总线协议测试时的 并行数据
文章目录 前言一、代码二、错误1.地址范围2. 并行执行线程中变量覆盖的情况3.有关incr的beat 前言 来源路科验证本节搞定 T3.3 AHB总线协议的覆盖:AHB_PROTOCOL_COVER 即测试ahb slave接口和master接口支持(尽可能)全部的ahb协议传输场景&am…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...


















