
Java
文章平均质量分 54
java基础
折腾的小飞
Java,HTML,CSS,JavaScript,C语言
个人博客:http://xiaofei.site
展开
-
常用循环依赖解决方案
Spring框架在`4.3`版本开始引入了对循环依赖的更好支持,但在此之前,Spring已经提供了一些机制来处理循环依赖。实际上,Spring从一开始就提供了几种解决循环依赖的方法,只是在后续版本中对这些机制进行了优化和改进原创 2024-11-29 17:31:07 · 333 阅读 · 0 评论 -
写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码
题目要求:写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码。如(“我ABC”,4)应该截为“我AB”,输入(“我ABC 汉DEF”,6)应该输出为“我ABC”而不是“我ABC+汉的半个”。public String subString(String str, int subBytes) { int bytes = 0; // 用来存储字符串的总字节数 for (int i = 0; i < str.length原创 2021-11-03 15:12:40 · 870 阅读 · 0 评论 -
写一个函数,要求输入一个字符串和一个字符长度,根据字符长度对该字符串进行分隔
看代码@Test public void Test4() { String str = "hello world"; // 2个字符分割 String[] split = split(str, 2); System.out.println(Arrays.toString(split)); } public String[] split(String str, int chars) { int inde原创 2021-11-03 15:08:27 · 543 阅读 · 0 评论 -
如何取小数点前两位并四舍五入?
可用该数字构造一java.math.BigDecimal 和java.text.DecimalFormat,再设置舍入模式进行四舍五入到保留小数点后两位,再将其转换为字符串截取最后两位。BigDecimalImmutable, arbitrary-precision signed decimal numbers不可变的任意精度的十进制数DecimalFormatDecimalFormat is a concrete subclass of NumberFormat that formats de原创 2021-11-03 14:57:46 · 910 阅读 · 0 评论 -
构造代码块,初始代码块和静态代码块的执行顺序
先看结果!静态代码块static{} -> 父类构造 -> 初始代码块{} -> 子类构造// 静态代码块只在第一次实例化类的时候执行一次,再次实例化的时候不再执行package com.study.StaticConstructionDemo;/** * @Description 父类 * @Date 2021/9/4 18:02 * @Created by 折腾的小飞 */public class Fu { public Fu() { S.原创 2021-09-25 15:04:34 · 212 阅读 · 0 评论 -
对象的序列化和反序列化
什么是序列化?为了把对象的成员属性和成员方法进行持久化的保存,需要把对象转换为字节序列,以便于存储,这个过程就叫序列化。反之,反序列化就是把字节序列恢复成对象。实现序列化的对象需要实现一个标记接口,并且给这个添加一个Long类型的标记Serializable 这个接口里面没有任何东西,只是作为一个标记private static final long serialVersionUID = 1L;常量,默认设置为1L当我们进行序列化和反序列化时就会检测该类上面是否有这个标记,没有会抛出异常原创 2021-09-25 14:55:42 · 729 阅读 · 0 评论 -
switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
可以用char, byte, short, int,Character, Byte, Short, IntegerString, enum不能用 Long,boolean,float,doublepackage com.study.JavaBase;import org.junit.Test;/** * @Description switch语句能否作用在byte上,能否作用在long上,能否作用在String上? * @Date 2021/9/4 15:38 * @Created b原创 2021-09-25 14:33:06 · 276 阅读 · 0 评论 -
如何把一段逗号分割的字符串转换成一个数组?
String.split()StringTokenizer类package com.study.JavaBase;import org.junit.Test;import java.util.Arrays;import java.util.StringTokenizer;/** * @Description 如何把一段逗号分割的字符串转换成一个数组? * @Date 2021/9/4 16:38 * @Created by 折腾的小飞 */public class Segme.原创 2021-09-25 14:27:05 · 3584 阅读 · 0 评论 -
Math.round(11.5)等于多少? Math.round(-11.5)等于多少?
Math.round()运算规则+0.5向下取整package com.study.JavaBase;import org.junit.Test;/** * @Description Math.round(11.5)等于多少? Math.round(-11.5)等于多少? * @Date 2021/9/4 16:28 * @Created by 折腾的小飞 */public class RoundDemo { @Test public void test(){原创 2021-09-25 14:23:48 · 304 阅读 · 0 评论 -
short s1 = 1; s1 = s1 + 1;和short s1 = 1; s1 += 1;的区别
这里存在一个变量类型提升的问题因为Java优化的问题,byte,char,short参与运算会自动向int转换package com.study.JavaBase;import org.junit.Test;/** * @Description * short s1 = 1; s1 = s1 + 1;有什么错? * short s1 = 1; s1 += 1;有什么错? * @Date 2021/9/4 16:23 * @Created by 折腾的小飞 */public clas原创 2021-09-25 14:21:25 · 264 阅读 · 0 评论 -
Java数据类型缓存池
常量缓存池package com.study.DataType;import org.junit.Test;/** * @Description 常量缓冲池 * @Date 2021/9/5 10:56 * @Created by 折腾的小飞 *//*基本数据类型的包装类除了 Float 和 Double 之外,其他六个包装器类(Byte、Short、Integer、Long、Character、Boolean)都有常量缓存池。Byte:-128~127,也就是所有的 byte 值原创 2021-09-25 13:48:24 · 177 阅读 · 0 评论 -
Java数组常用操作,创建,比较,排序,检索,打印数组;copyOf,equals,sort,toString
创建数组copyOf 复制指定的数组,截取或用 null 填充copyOfRange 复制指定范围内的数组到一个新的数组fill 对数组进行填充package com.study.array;import java.util.Arrays;/** * @Description 创建数组 * 1. copyOf 复制指定的数组,截取或用 null 填充 * 2. copyOfRange 复制指定范围内的数组到一个新的数组 * 3. fill 对数组进行填充 * @Date 202原创 2021-09-25 00:00:00 · 213 阅读 · 0 评论 -
Java 数据类型缓存池
package com.study.DataType;import org.junit.Test;/** * @Description 常量缓冲池 * @Classname IntegerDemo * @Date 2021/9/5 10:56 * @Created by 折腾的小飞 *//*基本数据类型的包装类除了 Float 和 Double 之外,其他六个包装器类(Byte、Short、Integer、Long、Character、Boolean)都有常量缓存池。Byte:-1转载 2021-09-05 11:13:49 · 362 阅读 · 0 评论 -
Java基础关键知识点(1)
在JAVA中如何跳出当前的多重嵌套循环?package com.study.Cyclic;import org.junit.Test;/** * @Description 在JAVA中如何跳出当前的多重嵌套循环? * @Classname ForDemo * @Date 2021/9/4 15:21 * @Created by 折腾的小飞 */public class ForDemo { /* 在外层定义标号 XX: 在里层循环体使用带有标号的原创 2021-09-04 17:15:59 · 224 阅读 · 0 评论 -
Java如何拆分字符串
假如现在有这样一串字符序列“沉默王二,一枚有趣的程序员”,需要按照中文逗号“,”进行拆分,这意味着第一串字符序列为逗号前面的“沉默王二”,第二串字符序列为逗号后面的“一枚有趣的程序员”。直接上 String 类的 split() 方法不就可以了。但是,在拆分之前,要先进行检查,判断一下这串字符是否包含逗号,否则应该抛出异常。public static void main(String[] args) { String str = "折腾的小飞,一枚有趣的程序员"; if转载 2021-08-22 16:55:38 · 4547 阅读 · 0 评论 -
Java如何拼接字符串
StringBuilder 的 append() 方法“循环体内,拼接字符串最好使用 StringBuilder 的 append() 方法,而不是 + 号操作符”这句话,我们很熟悉,那你知道是为什么吗?+号操作符其实被 Java 在编译的时候重新解释了,换一种说法就是,+号操作符是一种语法糖,让字符串的拼接变得更简便了。class Demo { public static void main(String[] args) { String chenmo = "沉默";转载 2021-08-22 16:28:47 · 5952 阅读 · 0 评论 -
Java如何比较两个字符串(对象)是否相等
看似简单的问题,可以引申为操作符==和equals()方法有什么区别?==操作符用于比较两个对象的地址是否相等equals()用于比较两个对象的内容是否相等// String对象比较String alita=new String("小萝莉");String luolita=new String("小萝莉");System.out.println(alita.equals(luolita)); // trueSystem.out.println(alita == luolita); // f转载 2021-08-22 15:44:57 · 5725 阅读 · 0 评论 -
Java虚拟机
概念直译器(解释器)这玩意?(估计你没听过)就是每跑一行代码就生成机器码,然后执行,比如说 Python 和 Ruby 用的就是直译器。在每个操作系统上装一个直译器就好了,跨平台的目的就达到了。编译器负责把 Java 源代码编译成字节码(不清楚的小伙伴可以点击链接查看上一节),Java 虚拟机(Java Virtual Machine,简称 JVM) 负责把字节码转换成机器码。Java 虚拟机虽然是虚拟的,但它的内部是可以划分为:类加载器(Class Loader)运行时数据区(Runti转载 2021-08-21 16:33:32 · 268 阅读 · 0 评论 -
Java的字符串常量池
字符串对象创建过程先看一道面试题// 这段代码创建了几个对象?String s = new String("卓卓");使用new关键字创建对象时,Java虚拟机会先在字符串常量池中查找有没有"卓卓"这个字符串对象,如果有,就不会在字符串常量池中创建"卓卓"这个对象,直接在堆中创建一个"卓卓"的字符串对象,然后将堆中这个"卓卓"的对象地址返回赋值给变量s。如果没有,先在字符串常量池中创建一个"卓卓"的字符串对象,然后再在堆中创建一个"卓卓"的字符串对象,然后将堆中这个"卓卓"的字符串对象地址返回赋转载 2021-08-21 16:15:29 · 582 阅读 · 0 评论 -
Java字符串的不可变性
源码在IDEA中找到,String的源码// Java 11public final class String implements Serializable, Comparable<String>, CharSequence { @Stable private final byte[] value; private final byte coder; private int hash; private static final long serialV转载 2021-08-21 15:31:38 · 188 阅读 · 0 评论 -
Java基础
Java基础JDKIntelliJ IDEA字节DOS命令虚拟机记事本运行Java文件/*类名 和 文件名 必须相同 定义要求: (1)不能用数字开头 (2)特殊符号不能开头¥ - + (3)不能使用关键字 (4)包含下划线和数字 类名 首字母大写 大驼峰原创 2021-07-31 11:25:40 · 155 阅读 · 0 评论 -
Java面向对象编程
面向对象编程面向过程:当需要一个功能时,每一个步骤都需要自己处理//打印数组[10,504,542,12,54] public class OOPTest { public static void main(String[] args) { //面向过程 int[] arr1={10,504,542,12,54}; System.out.println("面向过程"); printArray(arr1); }原创 2021-07-31 10:11:20 · 200 阅读 · 0 评论 -
Java解决百马百担问题
大马可以驼2石粮食,中马驼1石粮食,两头小马驼1石粮食,现在需要100匹马,驼100石粮食,怎么分配?public static void main(String[] args) { horse(100);}/*** @description: TODO 大马可以驼2石粮食,中马驼1石粮食,两头小马驼1石粮食,现在需要100匹马,驼100石粮食,怎么分配* @author: 涂鏊飞17683866724@163.com* @date: 2021/7/21 12:38* @par原创 2021-07-21 15:04:03 · 3092 阅读 · 0 评论 -
Java基础笔记(入门,语法基础,流程控制,数组)
Java语言入门发展历程三大技术体系JavaSE 标准版JavaEE 企业版JavaME 嵌入式版Java语言特点简单性健壮性面向对象分布式多线程动态性可移植性(跨平台)Java语言怎么实现跨平台通过jvm虚拟机跨平台,不同平台安装不同版本的;跨平台的不是Java程序Java两大核心机制Java虚拟机机制垃圾回收机制Java语言运行流程jdk下载与安装,配置环境变量https://www.oracle.com/java/technologies/j原创 2021-06-21 23:24:05 · 148 阅读 · 1 评论 -
计算公式1!+2!+3!+...+10!的和
《程序设计基础-c语言》杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p91 习题313.计算出公式1!+2!+3!+…+10!的和。#include <stdio.h>int main( ){ int sum=1,i; for(i=1;i<=10;i++) { sum=sum*i; } printf("%d",sum);}...原创 2020-04-03 16:47:46 · 2866 阅读 · 2 评论 -
10个人围成一圈循环报数,输出最后出圈的人
《程序设计基础-c语言》杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p138习题59.假设有10个人围成一圈,从开始顺序编号。从第一个人开始报数,从1到3,凡是报出3的人出圈,问最后出圈的人是原来的几号。...原创 2020-05-04 19:01:28 · 4168 阅读 · 0 评论 -
使用选择排序和二分查找在数组中查找数据
《Java实用教程(第5版)微课版》ISBN 978-7-302-46425-9p29例子5能判断用户输入的一个整数是否在已知的数组中。程序效果如下图:输入整数,程序判断该整数是否在数组中122122不在数组中import java.util.Scanner;public class ChooseFind { public static void main(String[] args) { int start=0,end,middle; int a[]= {12,45,67,原创 2020-09-24 21:50:43 · 292 阅读 · 0 评论 -
【Java】阶乘 素数 循环
《Java 2实用教程 ()》、《Java实用教程(第5版)微课版》原创 2020-09-17 17:02:00 · 347 阅读 · 1 评论 -
利用循环打印杨辉三角形
使用Java编写程序,输出杨辉三角形package first_java;import java.util.*;/*打印杨辉三角*/public class E { public static void main(String[] args) {// 键盘输入 Scanner reader=new Scanner(System.in); System.out.println("输入杨辉三角行数:"); int n=reader.nextInt(); // 定义数组原创 2020-09-15 22:36:01 · 603 阅读 · 0 评论