java前期补遗--基本数据类型与自动类型提升

java基础项目练习二-客户信息管理程序,实现基本的增删改查 练习基本的MVC设计模式,创建customer类,提供基本属性和对应的存取方法 package bean; public class Customer { private String name; private int age; private char gender; private String phone; private ... 阅读详情

/*
变量
基本数据类型
基本数据类型之间的转换
基本数据类型与String之间的转换
进制与进制之间的转换
变量概念
1,内存中的储存区域
2,该区域的数据可以在同一类型范围内不断变化
3,变量是程序中最基本的储存单元,包含变量类型,变量名和储存的值
变量的作用
1,用于在内存中储存数据
使用变量的注意事项
1,java中的每个变量必须先声明再使用
2,使用变量名来访问这块区域的数据
3,变量的作用域:其定义所在的一对{}中
4,变量只有在其作用域内有效
5,同一个作用域内,不能定义重名的变量

变量的使用
1,java定义变量的格式:数据类型 变量名=变量值
2,变量必须先声明再使用;
变量都定义在其作用域内,在作用域内有效。在作用域外失效;
不可以在同一个作用域内声明两个名字相同的变量;

*/

class  VariableTest{
	public static void main(String[] args) {
		
		int myAge = 22;//变量定义 int 为整数型
		//或者拆分为两步 第一步声明 int myAge,第二步赋值 myAge = 12
		System.out.println(myAge);//变量使用,变量在经过声明和赋值后才能被使用 
		System.out.println(myClass);//myClass变量在下方public中声明,无法作用到本作用域
	}
}
	public void method(){
		int myClass = 1;//在这里定义一个变量名myClass,只能用在本作用域
		System.out.println(myClass);
}

/*
java定义的数据类型
java属于强类型语言,对于每一种数据都定义了明确的具体类型,并在内存中分配不同大小的内存空间。
按照数据类型分
一,基本数据类型(primitive type)
1数值型(整数型 byte short int long,浮点型float double)内存空间有小到大
2字符型 char
3布尔型 boolean
二,引用数据类型(reference type)
1类 class 字符串属于类
2接口 interface
3数组 [] array

按照声明位置不同分类

在方法体内部声明的变量为局部变量

成员变量:1,实例变量(不以static修饰)
2,类变量(以static修饰)
局部变量:1,形参(方法,构造器中定义的变量)
2,方法局部变量(在方法内部定义)
3,代码块局部变量(在代码块内定义)

整形类型:byte short int long
java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
java 的整形常量默认为int型,声明long型常量须后加“l”或者“L”
java程序中变量通常声明为ini型,除非不足以表示较大的数,才使用long
类型 储存空间 表数范围
byte 1字节=8bit -128到127 2的8次幂为256,分配正负两侧,中间一个0
short 2字节 -2的15次幂到2的15次幂-1
int 4字节 -2的31次幂到2的31次幂-1 约21亿
long 8字节 -2的63次幂到2的63次幂-1
1MB=1024KB 1KB=1024bit

浮点型:
与整数类型类似,java浮点类型也有固定的表数范围和字段长度
不受具体操作系统的影响

浮点类型有两种表达方式:
十进制数形式:例如 5.12 512.0f .512(必须有小数点)
科学计数法形式:例如 5.12e2 512E2 100E-2

float:单精度,位数可以精确到7位有效数字,很多情况下,精度很难满足要求
double:双精度,精度是float 的两倍,通常采用此类型
java 的浮点类型常量默认为double型,声明float型常量,须后加f或者F
单精度float 占用4字节 表数范围 -3.403E38到 3.403E38 E38为10的38次幂 范围比long大
双精度double 占用8字节 表述范围 -1.798E308到1.798E308
因为浮点类型可以使用科学计数法,所以范围比整数型大

字符型:char
char类变量占用一个字符=2字节空间
java中的所有字符都使用Unicode码,所以一个字符可以储存一个字母或者汉字或者其他语言的一个字符

字符类型的三种表现形式
1,字符常量是用单引号’’ 括起来的单个字符,如char c1 = ‘a’
char c2 = ‘中’ char c3 = ‘9’
2,java中还允许使用转义字符\来将其后的字符转变为特殊字符常量
如 char c4 = ‘\n’ \n表示换行符 \表示后面的不再解释为转义,如果输出\n,书写格式为\n
3,直接使用Unicode值来表示字符型常量:如 ‘\xxxx’,其中XXXX代表
一个十六进制整数,如\u000a 表示\n

char类型是可以参与计算的,因为它都对应一个Unicode码

ASCII码
计算机内部所有数据使用二进制表示,每一个二进制位(bit)有0和1两种装填
因此8个二进制可以组合出256种状态,被称为一个字节,一个字节可以
用来表示256种不同的状态,一个状态对应一个符号,就是256个符号
20世纪60年代,美国制定一套字符编码,被称为ASCII码,一共规定了128个字符码
比如空格是32,二进制为00100000,A为65 二进制01000001。这128个符号包括不能被打出的32个控制符号
只占用一个字节的后面7位,最前面的1位统一为0
缺点,不能表示所有字符,相同编码表示的字符不一致
世界上存在多种编码方式,同一个二进制数字可以被解释称不同符号,因此打开一个文档需要知道编码方式,否则会出现乱码

Unicode码
将世界上所有的符号纳入其中,每一个符号都给予一个独一无二的编码,使用Unicode没有乱码问题。
缺点,只规定了符号的二进制代码,没有规定这个二进制代码如何储存
,无法区别Unicode与ASCII,计算机无法区分三个字节表示一个符号还是3个符号
另外英文字母只用一个字节表示,如果每个符号用三个或者四个字节规定,就会极大浪费存储空间

UTF-8编码

使用最广泛的Unicode实现方式
是变长编码方式,可以使用1-6个字节表示一个符号,根据不同符号变化字节长度
编码规则
1,对单字节UTF-8编码,最高位0,其余7位用来对字符编码,等同ASCII
2,对多字节UTF-8编码,如果包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0
,该字节剩余的各位用来对字符进行编码,在第一个字节之后的所有字节,都是最高两位为10,其余6位用来对字符编码

布尔类型(boolean)
只能取两个数值之一,true或者false
用于条件判断,循环结构。

*/

class VariableTest1{
	public static void main(String[] args) {
		byte b1 = -128;
		byte b2 = 127;
		System.out.println(b1);
		System.out.println(b2);
		int i1 = 223242535;
		long l1 = 22323232214141L;//long类型变量赋值结尾加L或者l
		System.out.println(l1+1);
		double d1 = 123.34234;
		System.out.println(d1);
	    float f1 = 133.3456782F;//float类型的变量赋值结尾加f或F
		System.out.println(f1);
		char c1 = 'a';//定义char类型变量只能写一个字符 可以是字母数字中文特殊符号等
        char c3 = 97;//char 可以直接赋值ASCII码,很少这么写
		char c4 = '5';//在此处5为字符,对应一个ASCII码
		int i2 = (int)c4;//强转字符5为int型
		char c5;
		c5 = 'g';//赋值变量的书写方式也可以分步写。
		System.out.println(i2);//输出53,代表字符5的ASCII码
		System.out.println(c3);
		System.out.println("hello"+c1);
		char c2='\n';
		System.out.print("hello" + c2);
		System.out.println("world");
		System.out.println("\\n");
		System.out.println("你是\"最\"大的");//加\后表示后面的字符不做特殊用途
		boolean bb1 = false;
        System.out.println(bb1);
        boolean isOld = true;
			if(isOld){
				System.out.println("不行");
			}else{
			    System.out.println("可以");	
			}


	}
}

/*
String类型(字符串)变量的应用
1,String属于引用类变量类型,不属于基本数据变量类型
2,声明String类型变量时使用"",相对char变量声明使用’’。
3,String类型的值可以为单字符,也可以为空。char型中不可以为空,但可以为空格
例如char c = ‘’;编译不通过 char c = ’ ';可以编译
4,String 可以和八种基本数据类型做运算,且运算只能是连接运算,使用+号
5,String 和其他类型运算结果也是String类型。

*/

class StringTest {
	public static void main(String[] args) {
        System.out.println("Hello World!");
		String s1 = "Hello大家好";
		String s2 = "H";
		String s3 = "";
		System.out.println(s1);
		//*************************
		int number = 100;
		String numberStr = "学号";
		String info =numberStr + number;//加号+表示连接运算
		boolean b1 =true;
		String info1 = info + b1;//加号+表示连接运算
		System.out.println(info1);
		System.out.println(info);
		// 练习1
		char c = 'a';//ASCII中 a 的值是97,A的值是65
		int num = 10;
		String str = "hello";
		System.out.println(c + num + str);//输出 107hello ,第一个加号是相加,char和int相加输出int型,第二个加号是连接,int与String连接输出String
		System.out.println(c + str + num);//输出 ahello10
		System.out.println(c + (num + str));//输出a10hello 括号内先运算
		System.out.println((c + num) + str);//输出107hello
		System.out.println(str + num + c);//输出 hello10a
		System.out.println(str + 111);//输出 hello111
		System.out.println(str + "world");//输出 helloworld 
		//System.out.println(str + world);//无法编译,world必须加""才能被认为是String类

        //练习2
		//输出*  *的方法
		System.out.println("* *");//正确
		System.out.println('*' + '\t' + '*');//错误,输出char类型数值93
		System.out.println('*' + "\t" +'*');//正确
		System.out.println('*' + '\t' + "*");//错误 输出51*
		System.out.println('*' + ('\t' + "*"));//正确
		/*练习3
		String str1 = 4; 无法编译,没有""
		String str2 = 3.56f + "" ; 可以编译
		System.out.println(str2);输出3.56
		System.out.println(3 + 4 + "hello");输出7hello
		System.out.println("hello" + 3 + 4);输出hello34
		System.out.println('a' + 1 + "hello");输出98hello
		System.out.println("hello" + 'a' + 1);输出helloa1
		 练习4
		判断对错
      1   short s = 5;
		  s = s - 2;     无法编译,2是int型常量
      2   byte b = 3;
		  b = b + 4; 无法编译
		  b = (byte)(b + 4);可以编译,强制转换int为byte
	  3   char c = 'a';
		  int i = 5;
		  float d = .314f;
		  doule result = c + i + d;可以编译
      4   byte b = 5;
	      short s = 3;
		  short t = s + b;无法编译,byte与short运算应为int型
        */
		//String str1 = 123; 编译不通过
		String str1 = 123 + "";//编译可以通过,整数常量int型与String运算输出String类。
		System.out.println(str1);//输出123字符串,将数值转换为字符串可以用这种方式。
		
		//int num2 = str1; 编译不通过
		//int num2 = (int)str1;编译也不通过
		int num2 = Integer.parseInt(str1);
		System.out.println(num2);//通过Integer方法可以将String解析为int。
	}


}

/*
基本数据类型之间的运算规则
只讨论7种基本数据类型变量之间的运算,不包含boolean类型

1,自动类型提升
当容量小的数据类型变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型
此时的容量大小指的是表示数的范围大小,不是占用字节的大小,比如float(4个字节) 的容量大于long(8个字节)的容量
byte–>short–>int–>long–>float–>double
byte,char,short–>int–>long–>float–>double
byte,char,short三个互相做运算时输出都是int或更大的类型
2,强制类型转换
是自动类型提升运算的逆运算
1, 需要使用强转符号()例如long l1 = 112.9L;short s1 = (short)l1; 输出为112,只取整数部分。
2,使用强制类型转换,可能会出现精度损失。

注意
1,编码情况
long 1 = 122;也可以编译通过,会默认为int类型
long l2 = 12345673333;编译不通过,超出int范围,需要末尾加L,
float f1 = 12.3;编译失败,必须加F,因为默认为double类型。
2,编码情况2
byte b = 12;
byte b1 = b + 1;编译失败,数字1为整数型常量,默认为int型,小数型默认为double

*/

 class VariableTest2{
	public static void main(String[] args) {

		byte b1 = 2;
		int i1 = 1278;
		//byte b2 = b1 + i1
		//编译不通过,因为int范围大
		int i2 = b1 + i1;
		long l1 = b1 +i1;	
		System.out.println(i2);
		System.out.println(l1);
		float f1 = b1 + i1; //整数型数值运算结果可以定义为浮点型,系统输出自动加小数点
		System.out.println(f1);
		short s1 = 123;
		double d1 = s1;//可以将整数型直接转换为浮点型,后面自动加小数点
		System.out.println(d1);
		char c1 = 'a';// a 对应的数值为97
		int i3 = 10;
		int i4 = c1 + i3;//char只能容纳一个字符,所以i4不能为char类型
		System.out.println(i4);
	}
}
 class VariableTest3{
	public static void main(String[] args) {
        long l1=123L;//数值没有超出long范围可以不加L,也能编译,会自动转换为int类型
		short s1 = (short)l1;//数值没有超出short范围,强制转换后精度没有损失。
		System.out.println(s1);
		double d1 = 12.9;
		int i1 = (int)d1;//执行截断操作,结果只取整数部分,不是四舍五入
		System.out.println(i1);//输出12,损失小数点,精度损失
		int i2 = 128;
		byte b1 = (byte)i2;
		System.out.println(b1);//输出-128跟二进制规则有关,损失精度。
		long l2=128456744453453L;
		int i3 = (int)l2;
		System.out.println(i3);
		short s2 = (short)l2;
		System.out.println(s2);
		byte b2 = (byte)l2;
		System.out.println(b2);

	}
}
java个人项目,股票资金模拟 第一个版本在学习java面向对象之前编写,比较初级,直接在控制台输入参数,在main方法中完成数据的模拟与输出 package stocktradingsimulation; /* 此程序用于虚拟股票交易数值结果,模拟四只股票的交易情况 @author:wisdomcodeinside @version:1.0.0.1 */ import java.util.Scanner; import ja... 阅读详情

相关推荐

java面向对象21接口interface的使用

/* 接口(interface)的使用 1,使用 interface 接口名{} 的格式来定义一个接口,接口的主要用途就是被实现类实现。(面向接口编程) 2,在java中接口与类是并列的结构, 3,接口里面的成员 3.1在JDK7及以前的版本中,接口里面只能定义全局常量和抽象方法 全局常量:public static final 变量类型 变量名 = 值;因为默认是公共的静态常量,前面...

wisdomcodeinside的博客 504

Java实现数据自动按规则补齐

package com.shgz.comm.util; import java.text.SimpleDateFormat; import java.util.Date; /** * ******************************** * * @author zhaoqingwei. * 天下英雄出我辈,一入江湖岁月催. * 20182018/4/2016:27 * ...

伟夫子的博客 2174

别再乱按F8了!Win10系统修复的正确姿势:用管理员CMD运行sfc /scannow

本文详细介绍了Windows 10系统修复的正确方法,重点推荐使用管理员CMD运行`sfc /scannow`命令。相比传统的F8键和重装系统,这一方法更高效且安全,能解决大多数系统文件损坏问题。文章还提供了管理员CMD的启动方式、sfc命令的完整参数解析以及实战故障排除流程图,帮助用户快速恢复系统健康。

weixin_29218963的博客 456

java尚硅谷 java基础第一个项目,记账软件

分为两个部分,第一部分创建一个Utility工具类,方便调用 /* utility工具类: 将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。 */ import java.util.*; public class Utility{ private static Scanner scan = new Scanner(System.in); //用于...

wisdomcodeinside的博客 5393

基于Android平台下的健康管理APP/基于android的健康管理系统

随着网络科技的发展,移动智能终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。Android技术作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 本课题研究的是基于Android技术平台的健康管理APP,开发这款健康管理APP主要是为了帮助用户可以不用约束时间与地点进行所需信息。本文详细讲述了健康管理APP的界面设计及使用,主要包括界面的

m0_73706453的博客 1437

Mac和VScode配置fortran

macOS系统 vscode fortran gfortran 终端

weixin_43047707的博客 2409

java 通过for嵌套循环输出字符图形,矩形,三角形,菱形

/* 循环嵌套 1,将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环 2,外层循环:循环结构B 内层循环:循环结构A 3, 内层循环遍历了一遍,只相当于外层循环执行了一次 假设外层循环执行m次,内层循环执行n次,则内层循环的循环体执行m*n次 */ import java.util.*; class ForTest2 { public static void main(Stri...

wisdomcodeinside的博客 2822

直流无刷BLDC六步换相“电流环”、“速度环”的关系

4、在电流闭环模式下,电机的电流严格按给定电流运行,负载大小变化时,电流不变,电机速度跟随负载非正常变化,例如速度严重“超速”时,需要“限速”保护,这个任务是“速度环”的,这时“速度环”会根据设定的速度上限,控制触发器,将电机速度迅速将下来,电流降下来,在“限速”保护期间,“电流环”失去对触发器的控制作用;3、在电流闭环模式下,电机的电流严格按给定电流运行,负载大小变化时,电流不变,电机速度跟随负载正常变化,“速度环”对速度大小的控制作用是没有的;6、很多人想当然,“电流环”不工作,电机“电流”哪里来的?

u011878611的博客 5466

java异常4 手动抛出异常与自定义异常类

/* 手动抛出异常:throw(注意throws是处理异常,throw是抛出异常) 1,Java异常类对象除在程序执行过程中出现异常时由系统自动生成并抛出,也可根据需要使用人工创建并抛出。 2首先要生成异常类对象,然后通过throw语句实现抛出操作(提交给Java运行环境)。 可以抛出的异常必须是Throwable或其子类的实例。否则将会产生语法错误: 通常使用RuntimeExceptio...

wisdomcodeinside的博客 2682

别再只用CANape测数据了!手把手教你用ASAP2 Studio编辑A2L文件(附MAP文件更新避坑指南)

本文深入探讨ASAP2 Studio在ECU开发中的高阶应用,特别是如何利用其编辑A2L文件并同步更新MAP文件,提升测量标定效率。文章详细解析了ASAP2 Studio的双向同步能力、MAP文件更新全流程及变量管理技巧,帮助工程师避免常见错误,优化工作流程。

weixin_26833939的博客 506

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

java异常2 异常处理之try-catch-finally结构

/* 异常处理方式1 try-catch-finally 1,Java采用的异常处理机制,是将异常处理的程序代码集中在一起,与正常的程序代码分开, 过多的if-else分支会导致程序的代码加长、臃肿,可读性差。因此采用异常处理机制。使得程序简洁、优雅,并易于维护。 2,Java提供的是异常处理的抓抛模型。 步骤一:抛出异常 程序在执行过程中如出现异常,会生成一个异常类对象,该异常对象将被提交...

wisdomcodeinside的博客 1045

英伟达 Jetson AGX Thor 官方入门教程(二)CUDA、Docker、JetPack 设置

本文详细介绍了NVIDIA Jetson AGX Thor开发套件的安装与配置流程。主要内容包括:1) BSP安装的三种方法(Jetson ISO、SDK Manager和Linux刷写脚本)及其适用场景;2) Docker环境的完整配置步骤及测试方法;3) CUDA工具包的两种安装方式(容器化和原生安装)及其性能对比;4) JetPack SDK的安装选项。文章提供了详细的命令行操作指南和故障排除建议,帮助开发者快速搭建AI开发环境,充分发挥Jetson平台的硬件性能优势。

机器人控制与仿真应用 1731

Java 多线程1 IDEA快捷键和多线程的理解

package leanthread;/* ideal 常用快捷键 https://blog.youkuaiyun.com/houfeng30920/article/details/79037647 -----------自动代码-------- 常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码 例如要输入for(User user...

wisdomcodeinside的博客 963

Yolov5自定义图片训练测试及模型调优(详细过程)

Yolov5自定义数据训练及测试1. 图像数据获取、标注2. 数据集划分及准备3. 配置训练参数,准备训练:3.1 修改data/训练配置xxx.yaml文件:3.2 修改models模型配置xxx.yaml文件4. 开始训练5. 测试训练后的模型: 1. 图像数据获取、标注 如果自定义训练自己的数据集,首先需要数据标注,至于数据来源可以是下载现有的开发数据集、拍照、爬虫等等。 如果是拍照、爬虫等获取的数据图片,需要进行数据标注,这个过程可以使用工具来做,但也需要一些手动操作 。。并且图片越多越好,如果

HowieXue 薛永浩的博客 10万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java条件判断语句 switch-case 练习

/* 程序流控制语句 分支语句之二 switch case switch结构 switch(表达式) //表达式不是boolean型 case 常量1: 语句1; //break case 常量2: 语句2; //break case 常量3: 语句3; //break . . . case 常量N: 语句N; //break deafault: 语句; //break 说明: 1,根据switc...

wisdomcodeinside的博客 795

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

java 条件判断语句 If-else的练习

java 条件判读语句的练习 import java.util.Scanner class IfTest2{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); //考试得分等级判断 System.out.println("请输入考试得分"); ...

wisdomcodeinside的博客 764

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java前期补遗--运算符的使用

/* java中的运算符 1,算数运算符 正+负- 加+ 减-乘*除/ 取模% 自增(前)++a 先运算后取值 自增(后)a-- 先取值后运算 自减(前)–a 先运算后取值 自减(后)a-- 先取值后运算 字符串连接+ */ class ArythmeticTest{ public static void main(String[] args) { //除法 / int num1 = 12...

wisdomcodeinside的博客 632

java 面向对象练习3 对象数组

/* 对象数组题目 1,创建学生类:包含三个属性,学号number,int型,年级 state int型,成绩score int型 创建60个对象,学号为1到60,年级和成绩由随机数确定 2,打印3年级所有学生的信息 3,使用冒泡排序给学生成绩排序,并遍历所有学生信息 随机数生成:Math.random(),返回值类型double 随机数组范围[0,1),映射到[a,b]则表达式为 (Math...

wisdomcodeinside的博客 591

java练习项目三 团队成员调度程序

主要目的,练习多态性,异常处理,设计模式 创建bean包,包含基础对象 创建员工类 package bean; public class Employee { private int id; private String name; private int age; private double salary; public int getId() { return id; }...

wisdomcodeinside的博客 489

java面向对象练习10 this关键字

/* java关键字之this 1,this可以修饰属性,方法,构造器。 2,当this修饰属性和方法时,this可以理解为当前对象(在方法内)或正在创建的对象(在构造器内) 2.1在类的方法中,我们可以使用“this.属性”或者“this.方法”的方式,调用当前对象属性或方法。 但是通常情况下,都会选择省略“this”。特殊情况下,如果方法的形参与类的属性重名时,必须显示的 使用“this...

wisdomcodeinside的博客 453

java的基本数据类型之间的运算规则

/* 基本数据类型之间的运算规则 只讨论7种基本数据类型变量之间的运算,不包含boolean类型 1,自动类型提升 当容量小的数据类型变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型 此时的容量大小指的是表示数的范围大小,不是占用字节的大小,比如float(4个字节) 的容量大于long(8个字节)的容量 byte–>short–>int–>long–>...

wisdomcodeinside的博客 434

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 214

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 139

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 323
上一篇: java面向对象24 内部类(InnerClass)的使用
下一篇: java前期补遗--运算符的使用
wisdomcodeinside
博客等级 码龄7年 29粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值