Java小白入门基础知识(二)

news/2025/2/21 10:50:58/

1.标识符

概念: 在程序中给类,方法,变量取的名称叫做标识符

规范: 字母,数字,下划线,$符号

注意: 不能以数字开头,也不能是关键字,严格区分大小写(一般定义常量就是大写)

软性建议: 

1)类名:每个单词首字母大写(大驼峰)

2)方法名:首字母小写,后面每个单词首字母大写(小驼峰)

3)变量名:与方法名规则相同

2.数据类型

和c语言不一样的是,字节类型是1byte,而char类型是2byte 

长整型:long

为了区分long和int,在long类型的数据后面加上大写的L

一个汉字字符是两个字节 c语言使用的是阿斯克只支持英文字符,但Java使用的是Unicode编码是两个字节能支持汉字 

 so ,在c里面 char为1字节

 在Java里面 char为2字节

3.类型转换

1) 不同的数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围较大的类型.

2) 如果需要把范围大的类型赋值给范围小的,需要强制类型转换,但可能精度丢失.

3) 将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查.

4)强制类型转换不一定能成功,不相干的类型不能互相转换.

4.类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的.

1) int和long之间

int会被提升为long

2) byte和byte的运算

java">byte a = 10;
byte b = 20;
byte c = (byte)(a + b);

对于short,byte这种比4个字节小的类型.会提升成四个字节的int,再运算

5.Java的字符串类型(c没有的 依靠指针数组)

1. 字符串类型概述

在 Java 中,字符串是一系列字符的序列,Java 提供了 StringStringBuilder 和 StringBuffer 这三个类来处理字符串。

String 类

String 类是 Java 中最常用的字符串类,它位于 java.lang 包下,所以使用时无需额外导入。String 对象一旦被创建,其值就不能被改变,也就是说 String 是不可变的。

java">public class StringExample {public static void main(String[] args) {// 创建一个 String 对象String str = "Hello";System.out.println(str);}
}
StringBuilder 类

StringBuilder 类位于 java.lang 包下,它表示可变的字符序列。StringBuilder 是非线程安全的,适用于单线程环境下频繁修改字符串的场景,其操作效率比 String 高。

java">public class StringBuilderExample {public static void main(String[] args) {// 创建一个 StringBuilder 对象StringBuilder sb = new StringBuilder("Hello");// 追加字符串sb.append(" World");System.out.println(sb.toString());}
}
StringBuffer 类

StringBuffer 类同样位于 java.lang 包下,它也是可变的字符序列。与 StringBuilder 不同的是,StringBuffer 是线程安全的,适用于多线程环境下频繁修改字符串的场景,但由于线程安全的实现会带来一定的性能开销,所以其操作效率相对 StringBuilder 较低。

java">public class StringBufferExample {public static void main(String[] args) {// 创建一个 StringBuffer 对象StringBuffer sb = new StringBuffer("Hello");// 追加字符串sb.append(" World");System.out.println(sb.toString());}
}

2. String 类的常用方法

1).length() 方法

用于返回字符串的长度。

java">public class StringLengthExample {public static void main(String[] args) {String str = "Hello";int length = str.length();System.out.println("字符串的长度是:" + length);}
}
2).charAt(int index) 方法

用于返回指定索引位置的字符。

java">public class StringCharAtExample {public static void main(String[] args) {String str = "Hello";char ch = str.charAt(1);System.out.println("索引为 1 的字符是:" + ch);}
}
3).substring(int beginIndex, int endIndex) 方法

用于返回从 beginIndex 到 endIndex - 1 的子字符串。

java">public class StringSubstringExample {public static void main(String[] args) {String str = "Hello World";String subStr = str.substring(6, 11);System.out.println("子字符串是:" + subStr);}
}
4).equals(Object anObject) 方法

用于比较两个字符串的内容是否相等。

java">public class StringEqualsExample {public static void main(String[] args) {String str1 = "Hello";String str2 = "Hello";boolean isEqual = str1.equals(str2);System.out.println("两个字符串是否相等:" + isEqual);}
}

3. StringBuilder 和 StringBuffer 类的常用方法

1).append(String str) 方法

用于在字符串末尾追加指定的字符串。

java">public class StringBuilderAppendExample {public static void main(String[] args) {StringBuilder sb = new StringBuilder("Hello");sb.append(" World");System.out.println(sb.toString());}
}
2).delete(int start, int end) 方法

用于删除从 start 到 end - 1 的字符。

java">public class StringBuilderDeleteExample {public static void main(String[] args) {StringBuilder sb = new StringBuilder("Hello World");sb.delete(6, 11);System.out.println(sb.toString());}
}
3).reverse() 方法

用于反转字符串。

java">public class StringBuilderReverseExample {public static void main(String[] args) {StringBuilder sb = new StringBuilder("Hello");sb.reverse();System.out.println(sb.toString());}
}

综上所述,String 适用于字符串不经常变化的场景,StringBuilder 适用于单线程环境下字符串频繁变化的场景,StringBuffer 适用于多线程环境下字符串频繁变化的场景。

      


http://www.ppmy.cn/news/1572863.html

相关文章

机器学习PCA和LDA

主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。 PCA(主成分分析…

使用 Go-DeepSeek 轻松调用 DeepSeek 模型:从在线 API 到本地部署

引言 DeepSeek 是一个强大的 AI 模型平台,支持多种自然语言处理任务,如对话生成、代码补全和函数调用。为了方便 Go 开发者快速集成 DeepSeek 的功能,我开发了一个非官方的 Go 客户端库:go-deepseek。本文将详细介绍如何使用该库…

vue3.x 的provide 与 inject详细解读

在 Vue 3.x 中,provide 和 inject 是一对用于实现依赖注入的 API。它们允许父组件向其所有子组件(无论嵌套多深)传递数据或方法,而不需要通过 props 逐层传递。这在开发复杂组件或高阶组件时非常有用。 1. provide 的基本用法 p…

推荐系统与数据挖掘方向学习建议

一、基础理论构建 数学基础 重点掌握线性代数(矩阵运算)、概率论(贝叶斯定理、分布)和统计学(假设检验、相关性分析)。这些是理解机器学习算法(如矩阵分解、协同过滤)的核心。文献中…

win11 labelme 汉化菜单

替换 app.py,再重启 #labelme 汉化菜单# -*- coding: utf-8 -*-import functools import os import os.path as osp import re import webbrowserimport imgviz from qtpy import QtCore from qtpy.QtCore import Qt from qtpy import QtGui from qtpy import QtWidgetsfrom l…

$符(前端)

1‌. jQuery 的别名 用途&#xff1a;$ 是 jQuery 的核心标识符&#xff0c;用于快速选择 DOM 元素或调用 jQuery 方法。 // 选择所有 <div> 元素并隐藏 $(div).hide(); // 发起 AJAX 请求 $.get(/api/data, response > console.log(response)); 注意&#xff1a;虽然…

python旅游推荐系统+爬虫+可视化(协同过滤算法)

✅️基于用户的协同过滤算法 ✅️有后台管理 ✅️2w多数据集 这个旅游数据分析推荐系统采用了Python语言、Django框架、MySQL数据库、requests库进行网络爬虫开发、机器学习中的协同过滤算法、ECharts数据可视化技术&#xff0c;以实现从网站抓取旅游数据、个性化推荐和直观展…

Day3 25/2/16 SUN

【一周刷爆LeetCode&#xff0c;算法大神左神&#xff08;左程云&#xff09;耗时100天打造算法与数据结构基础到高级全家桶教程&#xff0c;直击BTAJ等一线大厂必问算法面试题真题详解&#xff08;马士兵&#xff09;】https://www.bilibili.com/video/BV13g41157hK?p4&v…