Java 基础到进阶企业技巧(二)

news2025/3/16 8:10:27

在 Java 学习的旅程中,我们逐步探索了其丰富的知识体系,从基础的数据类型、字符串操作,到流程控制、运算符的运用,每一步都为我们构建强大的编程能力奠定基石。同时,了解这些知识在 Java 全栈开发中的应用场景,对未来进入企业工作至关重要。

目录

一、字符串

1. 底层原理与语法

2. 字符串位置与拼接

3. 字符串数组操作

二、人机交互

1. 接收输入 - Scanner 类

2. 课堂练习

三、字符与编码

1. char 字符

2. 面试题:字符统计

四、标识符与关键字

1. 关键字

2. 标识符

五、数据类型

1. 基本数据类型

2. 类型转换问题

在 Java 全栈开发中的应用

六、循环控制

1. For 循环

2. while 循环

3. do - while 循环

4. for 增强循环

七、分支判断

1. 双分支

2. IF 多分支

3. Switch 多分支

八、运算符

1. 三元运算符

2. 自增运算符

3. 逻辑运算符

4. 按位运算符

5. 移位运算符

九、企业工作小技巧


一、字符串

1. 底层原理与语法

String 代表字符串,其底层基于字符数组实现。创建字符串有两种常见方式:

// 第1种用法
String 变量名称 = new String("内容"); 
// 第2种用法
String 变量名称 = "内容"; 

2. 字符串位置与拼接

在 Java 中,字符串的拼接操作十分常见。注意字符串与其他数据类型拼接时的顺序会影响结果:

public static void main(String[] args) { 
    int a = 4; 
    int b = 5; 
    // 字符串在前, 进行拼接字符串
    System.out.println("和是:" + (a + b)); 
    System.out.println(a + b + "是和!"); 
} 

3. 字符串数组操作

操作字符串数组时,常需根据特定条件筛选元素。

public static void main(String[] args) { 
    String[] arrs = {"貂蝉","大乔","小乔","蔡文姬","甄姬","孙尚香"}; 
    // 需求:找出姓蔡的女孩
    for (int i = 0; i < arrs.length; i++) { 
        if(arrs[i].startsWith("蔡")){ 
            System.out.println(arrs[i]); 
        } 
    } 
} 
public static void main(String[] args) { 
    String[] arrs = {"貂蝉","大乔","小乔","蔡文姬","甄姬","孙尚香"}; 
    // 需求:找出3字名的人
    for (int i = 0; i < arrs.length; i++) { 
        if(arrs[i].length() == 3){ 
            System.out.println(arrs[i]); 
        } 
    } 
} 

4. 课堂练习

练习一:找出以 "乔" 字结尾的人
String[] arrs = {"貂蝉","大乔","小乔","蔡文姬","甄姬","孙尚香"};
for (String name : arrs) {
    if (name.endsWith("乔")) {
        System.out.println(name);
    }
}
练习二:找出包含 "文" 的人
String[] arrs = {"貂蝉","大乔","小乔","蔡文姬","甄姬","孙尚香"};
for (String name : arrs) {
    if (name.contains("文")) {
        System.out.println(name);
    }
}
练习三:将名字带 "国" 的人,组合成新字符串
String[] arrs = {"王建国","蔡徐坤","川建国","李易峰","李爱国","吴亦凡"};
StringBuilder newStr = new StringBuilder();
for (String name : arrs) {
    if (name.contains("国")) {
        newStr.append(name).append("-");
    }
}
System.out.println(newStr.toString());
练习四:找出姓王或姓李的人
String[] arrs = {"王建国","蔡徐坤","川建国","李易峰","李爱国","吴亦凡"};
for (String name : arrs) {
    if (name.startsWith("王") || name.startsWith("李")) {
        System.out.println(name);
    }
}
练习五:找出 2 字名并且姓李的人
String[] arrs = {"王建国","蔡坤","川建国","李峰","李爱国","吴凡"};
for (String name : arrs) {
    if (name.length() == 2 && name.startsWith("李")) {
        System.out.println(name);
    }
}

在 Java 全栈开发中的应用

在 Java 全栈开发中,字符串处理贯穿前后端。前端通过 JavaScript 与后端 Java 交互时,数据传输多以字符串形式,后端需精确解析和处理这些字符串。例如,在处理用户注册信息时,对用户名、密码等字符串的验证和存储都依赖上述字符串操作方法。

二、人机交互

1. 接收输入 - Scanner 类

通过 Scanner 类可实现从控制台接收用户输入:

Scanner scanner = new Scanner(System.in); 

2. 课堂练习

需求一:输入姓氏,打印对应人名
String[] arrs = {"王建国","蔡徐坤","川建国","李易峰","李爱国","吴亦凡"};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入姓氏:");
String prefix = scanner.next();
for (String name : arrs) {
    if (name.startsWith(prefix)) {
        System.out.println(name);
    }
}
需求二:输入关键字,打印包含该关键字的人名
String[] arrs = {"赵云","夏侯惇","黄忠","夏侯渊","吕布","太史慈"};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入关键字:");
String keyword = scanner.next();
for (String name : arrs) {
    if (name.contains(keyword)) {
        System.out.println(name);
    }
}
需求三:输入数值,打印对应长度的人名
String[] arrs = {"赵云","夏侯惇","黄忠","夏侯渊","吕布","太史慈"};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入人名长度:");
int length = scanner.nextInt();
for (String name : arrs) {
    if (name.length() == length) {
        System.out.println(name);
    }
}
需求四:输入人名,打印对应长度的人名
String[] arrs = {"赵云","夏侯惇","黄忠","夏侯渊","吕布","太史慈"};
Scanner scanner = new Scanner(System.in);
System.out.println("请输入人名:");
String inputName = scanner.next();
int inputLength = inputName.length();
for (String name : arrs) {
    if (name.length() == inputLength) {
        System.out.println(name);
    }
}

在 Java 全栈开发中的应用

人机交互在 Java 全栈开发中是连接用户与系统的桥梁。前端页面通过表单等元素收集用户输入,而后端使用 Scanner 等机制获取并处理这些输入。在企业级 Web 应用中,用户登录、提交订单等操作都依赖于准确的人机交互流程,确保数据的正确接收和处理。

三、字符与编码

1. char 字符

字符类型char用于表示单个字符,字符串本质是字符数组。计算机底层以二进制 0/1 存储数据,通过编码集将字符与二进制对应。早期有 Ascii 码,涵盖 128 个字符,包含 33 个不可显示字符和 95 个可显示字符。但对于中文等更多字符,国内常用 GB2312、GBK,目前广泛使用 UTF - 8 编码。

public static void main(String[] args) { 
    char a = 'A';//65 
    System.out.println(a); 
    System.out.println(a + 1); 
    System.out.println(a > 30); 
} 

2. 面试题:字符统计

String str = "qwe3245sdfAWW234FW23as3"; 
int upperCount = 0; 
int lowerCount = 0; 
int digitCount = 0; 
for (int i = 0; i < str.length(); i++) { 
    char c = str.charAt(i); 
    if (Character.isUpperCase(c)) { 
        upperCount++; 
    } else if (Character.isLowerCase(c)) { 
        lowerCount++; 
    } else if (Character.isDigit(c)) { 
        digitCount++; 
    } 
} 
System.out.println("大写字母个数:" + upperCount); 
System.out.println("小写字母个数:" + lowerCount); 
System.out.println("阿拉伯数字个数:" + digitCount); 

在 Java 全栈开发中的应用

在全栈开发中,字符编码问题影响数据在前后端及不同系统间的传输与存储。例如,在处理国际化网站时,需确保不同语言字符在 UTF - 8 编码下正确显示和处理。同时,字符统计等操作在文本分析、数据清洗等后端任务中十分常见。

四、标识符与关键字

1. 关键字

Java 共有 50 个关键字,其中constgoto是保留字。关键字在 Java 中有特定含义,不能用作标识符。

2. 标识符

标识符由大小写字母、数字、下划线、$ 美元符号组成,但数字不能开头,且不能是关键字。行业规范要求标识符 “见名知意”,类名和接口名采用 “大驼峰命名法”(如UserEntityUserServiceImpl),方法名、参数名和变量名采用 “小驼峰命名法”(如userNameloginNameage),常量则所有单词大写并用_分隔。具体可参考《阿里巴巴 Java 开发手册》。

在 Java 全栈开发中的应用

规范的标识符命名在全栈开发团队协作中至关重要。清晰易懂的标识符能使代码更易读、维护,减少因命名混乱导致的错误。无论是前端的 JavaScript 变量命名,还是后端 Java 代码中的各种命名,都应遵循统一规范,提升代码整体质量。

五、数据类型

1. 基本数据类型

Java 有 4 类 8 种基本数据类型:byteshortintlongfloatdoublecharboolean

public static void main(String[] args) { 
    byte a = 127; 
    short b = 32767; 
    int c = 2147483647; 
    long d = 2147483648L; 
    float e = 3.14F; 
    double f = 3.14; 
    char g = '中'; 
    boolean h = false;//true 
} 

2. 类型转换问题

基本数据类型间存在自动类型转换(如byteshortint等)和强制类型转换(需显式声明,如int i = (int) 3.14;)。在全栈开发中,数据类型转换常见于数据库查询结果与 Java 对象间的映射,以及前端传递数据与后端接收数据类型的适配。例如,前端传递的字符串类型数字,后端需转换为合适的数值类型进行计算和存储。

在 Java 全栈开发中的应用

正确使用基本数据类型能优化内存使用和程序性能。在后端,数据库表字段类型与 Java 基本数据类型的准确映射确保数据的正确存储和读取;在前端与后端的数据交互中,数据类型的一致性和正确转换是保证系统稳定运行的关键。

六、循环控制

1. For 循环

for (int i = 0; i < 5; i++) { 
    System.out.println("循环次数:" + i); 
} 

2. while 循环

int i = 1; 
while(i <= 5){ 
    System.out.println("刘亦菲!"); 
    i ++; 
} 

3. do - while 循环

int i = 1; 
do{ 
    System.out.println("杨幂"); 
    i ++; 
}while (i <= 5); 

4. for 增强循环

String[] arrs = {"张飞","张苞","关羽","关平"}; 
// 增强For循环
for (String name : arrs) { 
    System.out.println(name); 
} 

在 Java 全栈开发中的应用

循环控制在全栈开发中用于遍历数据集合,如数据库查询结果集、前端页面元素集合等。后端通过循环处理批量数据,如批量插入数据库记录;前端使用循环动态生成 HTML 元素。合理运用不同类型的循环,能提高代码的效率和可读性。

七、分支判断

1. 双分支

int score = 80; 
if(score >= 60){ 
    System.out.println("及格"); 
} else{ 
    System.out.println("不及格"); 
} 

2. IF 多分支

System.out.println("请输入你的资产金额:"); 
Scanner scanner = new Scanner(System.in); 
long money = scanner.nextLong(); 
/*根据资产,划分阶级*/
if(money > 0 && money <= 100000){ 
    System.out.println("无产阶级!"); 
} else if(money > 100000 && money <= 500000){ 
    System.out.println("小康家庭!"); 
} else if(money > 500000 && money <= 2000000){ 
    System.out.println("地方豪绅!"); 
} else if(money > 2000000 && money <= 10000000){ 
    System.out.println("万恶的资本家!"); 
} else{ 
    System.out.println("慈善家!"); 
} 

3. Switch 多分支

System.out.println("请输入心仪的嘉宾类型:0-温柔体贴型 1-乐观开朗型 2-文静典雅型 3-豪放粗狂型"); 
Scanner scanner = new Scanner(System.in); 
int i = scanner.nextInt(); 
switch (i){ 
    case 0: 
        System.out.println("温柔体贴型"); 
        break; 
    case 1: 
        System.out.println("乐观开朗型"); 
        break; 
    case 2: 
        System.out.println("文静典雅型"); 
        break; 
    case 3: 
        System.out.println("豪放粗狂型"); 
        break; 
    default: 
        System.out.println("没有型!"); 
        break; 
} 

Switch 分支支持byteshortintcharString、枚举类型。IF 多分支适合条件为范围的情况,Switch 分支适合某几个确定的选项值。

在 Java 全栈开发中的应用

分支判断用于根据不同条件执行不同逻辑。在后端,根据用户权限、业务规则等进行分支处理;在前端,根据用户操作(如点击不同按钮)触发不同功能。例如,在电商系统中,根据用户购物车金额判断是否满足包邮条件,执行不同的运费计算逻辑。

八、运算符

1. 三元运算符

System.out.println("请输入:0或1"); 
Scanner scanner = new Scanner(System.in); 
int i = scanner.nextInt(); 
// 三目运算符
String gender = (i == 0)? "女" : "男"; 
System.out.println("gender = " + gender); 

语法:数据类型 变量 = (判断条件)? 默认值1 : 默认值2;

2. 自增运算符

int i = 4; 
System.out.println(i++);//4 
System.out.println(i);//5 

总结:独立使用时,++--前后位置无所谓;非独立使用时,前置先自加再使用,后置先用再自加。

3. 逻辑运算符

&&(逻辑与)、||(逻辑或)、!(取反),两侧需为布尔表达式。&&两端条件都为true才是true||有一端为true就是true!truefalsefalsetrue

4. 按位运算符

&(按位与)、|(按位或)、^(按位异或),操作基于二进制位。&同为 1 才为 1;|只要有 1 就是 1;^是 01 组合才是 1。

5. 移位运算符

<<(左移)、>>(右移)、>>>(无符号右移)。左移将二进制位向左移动,低位补 0;右移将二进制位向右移动,高位补符号位;无符号右移高位补 0。

在 Java 全栈开发中的应用

运算符在全栈开发中用于各种数据处理和逻辑判断。三元运算符常用于简化简单的条件赋值;自增运算符在循环计数、状态变更等场景频繁使用;逻辑运算符构建复杂的业务逻辑判断;按位和移位运算符在底层算法、数据加密等领域发挥作用。在企业工作中,熟练掌握运算符能优化代码性能,实现高效的数据处理。

九、企业工作小技巧

  1. 代码注释与文档:在编写代码时,养成良好的注释习惯。详细的注释不仅帮助自己日后维护代码,更方便团队成员理解。同时,编写清晰的技术文档,记录项目架构、接口说明、数据库设计等关键信息,提升团队协作效率。
  2. 版本控制:熟练使用版本控制系统,如 Git。定期提交代码,合理使用分支管理功能,避免代码冲突。在团队开发中,及时拉取最新代码,保持代码库同步。
  3. 代码复用:注重代码的复用性,将常用功能封装成方法或类。这不仅减少代码量,还方便维护和升级。例如,将数据库连接、数据验证等操作封装成独立模块,在多个项目中复用。
  4. 性能优化意识:从一开始就关注代码性能。合理选择数据结构和算法,避免不必要的资源浪费。在处理大数据量时,注意优化查询语句、减少内存占用等。
  5. 问题排查:遇到问题时,学会使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2315904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Google最新生图模型Gemini-2.0-Flash-Exp免费用

Google发布新生图模型 Google释放出最新生图模型&#xff0c;在发布说明中提到&#xff1a; 2025年3月12日 在 Gemini-2.0-Flash-Exp 中发布原生图像输出功能 Gemini 2.0 Flash Experimental 模型发布&#xff0c;支持原生图像输出功能。开发者能够使用 Gemini 进行图像输出和…

leecode695.岛屿的最大面积

跟求岛屿数量的题目差不多&#xff0c;依旧是深度搜索或者广度搜索问题 class Solution { private:int maxAreaOfIsland(vector<vector<int>>& grid,vector<vector<bool>>& visited,int x,int y){if(x<0||x>grid.size()||y<0||y>…

助力字体管理,规避设计卡顿的得力工具

在设计领域&#xff0c;字体看似平常&#xff0c;却常常在关键时刻“掉链子”&#xff0c;让设计师们头疼不已。面对海量字体库&#xff0c;找到心仪那款宛如大海捞针&#xff0c;字体安装过多还会造成软件卡顿&#xff0c;这些麻烦事儿&#xff0c;频繁与字体打交道的朋友肯定…

数统院复试来啦,西电数学与统计学院—考研录取情况

4西安电子科技大学—数学与统计学院—考研录取统计 01、数学与统计学院各个方向 02、24数学与统计学院近三年复试分数线对比 数统院24年院线相对于23年院线增加高达30分&#xff0c;确实增长浮动比较高&#xff0c;接近30分的水平&#xff0c;因此大家更需要好好去努力&#xf…

Windows功能之FTP服务器搭建

一、创作背景 之前有用linux系统搭建过ftp服务器&#xff0c;最近想着用windows系统也顺便搭建一个&#xff0c;看网上有第三方服务软件一键部署&#xff0c;记得windows可以不借助第三方软件就可以搭建&#xff0c;就想顺便操作试试&#xff0c;结果老是连接不上&#xff0c;费…

leetcode hot100普通动态规划/基础DP

1️⃣1️⃣ 普通动态规划&#xff08;基础 DP&#xff09; 70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 题解: 动态规划Dynamic Programming ,在观察动态中找到如何规划解题的步骤…

基于Python的天气预报数据可视化分析系统-Flask+html

开发语言&#xff1a;Python框架&#xff1a;flaskPython版本&#xff1a;python3.8数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 系统登录 可视化界面 天气地图 天气分析 历史天气 用户管理 摘要 本文介绍了基于大数据…

【鸿蒙开发】Hi3861学习笔记-Visual Studio Code安装(New)

00. 目录 文章目录 00. 目录01. Visual Studio Code概述02. Visual Studio Code下载03. Visual Studio Code安装04. Visual Studio Code插件05. 附录 01. Visual Studio Code概述 vscode是一种简化且高效的代码编辑器&#xff0c;同时支持诸如调试&#xff0c;任务执行和版本管…

Redis基本命令手册——五大类型

目录 一&#xff1a;基本操作 二&#xff1a;字符串&#xff08;String&#xff09; 三&#xff1a;哈希&#xff08;Hash) 四&#xff1a;列表&#xff08;List&#xff09; 五&#xff1a;集合&#xff08;Set&#xff09; 六&#xff1a;有序集合&#xff08;Zset&…

历年华中科技大学计算机考研复试上机真题

历年华中科技大学计算机考研复试上机真题 2022华中科技大学计算机考研复试上机真题 2021华中科技大学计算机考研复试上机真题 2019华中科技大学计算机考研复试上机真题 在线评测&#xff1a;https://pgcode.cn 八进制 题目描述 输入一个整数&#xff0c;将其转换成八进制数…

Python----数据分析(Pandas二:一维数组Series,Series的创建,Series的属性,Series中元素的索引与访问)

一、一维数组Series Series&#xff1a;一维数组,与Numpy中的一维array类似。它是一种类似于一维数组的对象&#xff0c;是由一组数据(各种 NumPy 数据类型)以及一组与之相关的数据标签(即索引)组成。 仅由一组数据也可产生简单的 Series 对象&#xff0c;用值列表生成 Series …

java数据结构(复杂度)

一.时间复杂度和空间复杂度 1.时间复杂度 衡量一个程序好坏的标准&#xff0c;除了能处理各种异常&#xff0c;还有就是时间效率&#xff0c;当然&#xff0c;对于一些配置好的电脑数据处理起来就是比配置低的高&#xff0c;但从后期发展来看&#xff0c;当数据量足够庞大时&…

windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC

大家好&#xff0c;我是国货系创始人张云泽&#xff0c;最近不少小伙伴在后台问&#xff1a;“听说Windows协议要到期了&#xff1f;我的电脑会不会变砖&#xff1f;”还有人说&#xff1a;“华为笔记本以后用不了Windows了&#xff1f;鸿蒙系统能用吗&#xff1f;”今天咱们就…

HTML+CSS基础(了解水平)

html 的介绍 学习目标 能够知道html的作用 1. html的定义 2. html的定义 HTML 的全称为&#xff1a;HyperText Mark-up Language, 指的是超文本标记语言。 标记&#xff1a;就是标签, <标签名称> </标签名称>, 比如: <html></html>、<h1><…

[设计模式]1_设计模式概览

摘要&#xff1a;设计模式原则、设计模式的划分与简要概括&#xff0c;怎么使用重构获得设计模式并改善代码的坏味道。 本篇作概览与检索用&#xff0c;后续结合源码进行具体模式深入学习。 目录 1、设计模式原理 核心原则&#xff08;语言无关&#xff09; 本质原理图 原…

Elasticsearch集群与日志系统实战部署指南

一、环境规划与初始化配置 1. 服务器资源分配 IP地址部署服务主机名172.25.23.7ES Kafka Zookeeper Kibananode1172.25.23.8ES Kafka Zookeeper Filebeatnode2172.25.23.9Kafka Zookeeper Apache Logstashnode3 系统要求&#xff1a; 配置&#xff1a;4核CPU / 4G…

SFT数据处理部分的思考

SFT数据及处理的业内共识 1&#xff0e;prompt的质量和多样性远重要于数据量级&#xff0c;微调一个 30 b 量级的base model只需要 10 w 量级的数据即可 参考&#xff1a;《LIMA&#xff1a;Less Is More for Alignment》 2&#xff0e;合成数据很重要&#xff01;一般需要通过…

netsh实现TCP端口转发

服务器&#xff1a;192.168.31.9 端口&#xff1a;56000 客户端&#xff1a;192.168.31.2 端口&#xff1a;5600 客户端&#xff08;本地端口5600&#xff09;通过TCP连接服务器的56000端口 PC&#xff1a;192.168.31.5&#xff0c;PC实现客户端和服务器之间56000端口转发 1. …

leetcode 75.颜色分类(荷兰国旗问题)

题目描述 题目分析 本题是经典的「荷兰国旗问题」&#xff0c;由计算机科学家 Edsger W. Dijkstra 首先提出。 要想单独解决这道题本身还是很简单的&#xff0c;统计0、1、2的数量然后按顺序赋值&#xff0c;或者手写一个冒泡排序&#xff0c;whatever。 但是在这一题中我们主…

在windows上通过idea搭建doris fe的开发环境(快速成功版)

一、前置环境准备 1. 准备Linux环境&#xff0c;我起的虚机&#xff0c;使用CentOS8&#xff0c;4核、12G&#xff0c;磁盘50G 1.1.备份yum源 # 系统下载连接&#xff1a;magnet:?xturn:btih:9DB46A612D04763AA7DB02A0FF63EDE2EA555867&dnCentOS-8.1.1911-x86_64-dvd1.…