首页 > 编程语言 >java日常记录1

java日常记录1

时间:2023-10-31 19:07:05浏览次数:30  
标签:java 记录 int System VALUE 日常 println out


java学到框架了,发现javaSE的东西忘记的差不多了,故此挂在这里流个记录,方便将来查看,顺便巩固一下学过的知识点,文章可能有点长,我打算利用文章和代码结合的方式记录一下。顺便本文档的参考文献主要来自秦老师,当然还有自己从书本上摘抄的一下东西。

java基础
java自1991年,由sun公司的工程小组提出设计一种小型计算机语言,刚刚开始项目命名为Green,‘Green’ 项目于1992年发布了第一个产品‘ *7 ’ ,然而sun公司对这个项目不感兴趣,于是这个项目被滞留了下来,直至1996年年初,sun公司发布了java 1.0开始,java 才算是真正上台。java 分为 java SE ,java EE, java ME。

java 白皮书 关键术语:

  1. 简单性
  2. 面向对象
  3. 分布式
  4. 健壮性
  5. 安全性
  6. 体系结构中立
  7. 可移植性
  8. 解释性
  9. 高性能
  10. 多线程
  11. 动态性

java 开发的环境的搭建
首先,我们一般使用的是jdk版本。
安装jdk,配置环境变量,以下是环境变量的配置步骤:

(1)新建->变量名" JAVA_HOME “,变量值” C:\Java\jdk1.8.0_05 “(即JDK的安装路径)
(2)编辑->变量名” Path ",在原变量值的最后面加上“ ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin ”
(3)新建->变量名“ CLASSPATH ”,变量值“ .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar ”

然后通过cmd 控制窗口 输入 java -version 和 javac -version
检查环境变量是否配置好

java注意事项
java是区分大小写的,一定要记住。

对于所有的类来说,类的名字第一个字母要大写。最好是驼峰命名法。

方法名都应该用小写字母开发,如果方法名含有若干单词,则后面的每个单词首字母大写。

源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错
误)。

主方法入口:所有的 Java 程序由 public static void main(String []args) 方法开始执行。

java中采用多行注释和多行注释还有文档注释
/ * * / 用于多行注释
// 用于单行注释
/ ** */ 文档注释

java标识符

java日常记录1_java


Java已经规定的关键字,我们自己就不能拿它当做名字了!

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

注意:

所有的标识符都应该以字母(A-Z 或者 a-z),美元符( $ )、或者下划线( _ )开始

首字符之后可以是字母(A-Z 或者 a-z),美元符( $ )、下划线( _ )或数字的任何字符组合不能使用关键字作为变量名或方法名。

标识符是大小写敏感的

合法标识符举例:age、$salary、_value、 1_value

非法标识符举例:123abc、-salary、#abc数据类型

java日常记录1_Java_02

public static void main(String[] args) {

// byte
System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);
System.out.println(" 包 装 类 :java.lang.Byte");
System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);
 System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); 
 System.out.println();
 
 // short
System.out.println("基本类型:short 二进制位数:" + Short.SIZE); 
System.out.println(" 包 装 类 :java.lang.Short"); 
System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); 
System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); 
System.out.println();

// int
System.out.println("基本类型:int 二进制位数:" + Integer.SIZE);
 System.out.println("包装类:java.lang.Integer");
System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);
System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);
System.out.println();

// long
System.out.println("基本类型:long 二进制位数:" + Long.SIZE);
System.out.println("包装类:java.lang.Long");
System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);
System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);
System.out.println();

// float
System.out.println("基本类型:float 二进制位数:" + Float.SIZE);
System.out.println("包装类:java.lang.Float");
System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);
System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);
System.out.println();

// double
	System.out.println("基本类型:double 二进制位数:" + Double.SIZE);
	System.out.println("包装类:java.lang.Double");
	System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);
	System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);
	System.out.println();
	
// char
	System.out.println("基本类型:char 二进制位数:" + Character.SIZE);
	System.out.println("包装类:java.lang.Character");
	// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
	System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);
	// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
	System.out.println("最大值:Character.MAX_VALUE="
	+ (int) Character.MAX_VALUE);
}

然后就注意一下编码集我个人喜欢UTF-8的。

public static void main(String[] args) {

//整型
int i1=100;
//长整型
long i2=998877665544332211L;
//短整型
short i3=235;
//浮点型
double d1=3.5;	//双精度
double d2=3;
float f1=(float)3.5;	//单精度
float f2=3.5f;	//单精度

//布尔类型 boolean true真/false假
boolean isPass=true;
boolean isOk=false;
boolean isBig=5>8;
if(isPass){
System.out.println("通过了");
}else{
System.out.println("未通过");
}

//单字符
char f='女';
char m='男';

}

java转义字符

java日常记录1_System_03

类型转换
数据类型转换必须满足如下规则:

  1. 不能对boolean类型进行类型转换。
  2. 不能把对象类型转换成不相关类的对象。
  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  4. 转换过程中可能导致溢出或损失精度
    如:
int i =128;
byte b = (byte)i;

因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

(int)23.7 ==	23;
(int)-45.89f	== -45

1、自动类型转换
自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。
例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
【演示】

public static void main(String[] args) {
double x	= 3.14;
int nx = (int)x;	//值为3

char c = 'a';
int d = c+1;
System.out.println(d); //98
System.out.println((char)d);	//b
}

【解析:c1 的值为字符 a ,查 ASCII 码表可知对应的 int 类型值为 97, A 对应值为 65,所以
i2=65+1=66。】

2、强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型.
在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
强制类型转换的语法格式: ,运算符“()”中的type表示将值var想要转换成的目标数据类
型。 条件是转换的数据类型必须是兼容的。
【演示】

public static void main(String[] args) {
	double x	= 3.14;
	int nx = (int)x;	//值为3
	
	char c = 'a';
	int d = c+1;
	System.out.println(d); //98
	System.out.println((char)d);	//b
	}

当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同 的值,溢出。

public static void main(String[] args) { int x = 300;
byte bx = (byte)x;	//值为44
System.out.println(bx);
}

3、常见错误和问题
1.操作比较大的数时,要留意是否溢出,尤其是整数操作时;

public static void main(String[] args) {
int money = 1000000000;	//10亿
int years = 20;
int total = money*years;	//返回的是负数
long total1 = money*years;	//返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
long total2 = money*((long)years);	//先将一个因子变成long,整个表达式发生提升。全部用long来计算。
System.out.println(total);
System.out.println(total1);
System.out.println(total2); 10	}

2.L和l 的问题:
不要命名名字为l的变量
long类型使用大写L不要用小写。

变量

类变量(静态变量:static 修饰变量名 ):独立于方法外,用static 修饰。

public class Variable{
		static int allClicks=0;	// 类变量
		String str="hello world";	// 实例变量
		
		public void method(){
		int i =0;	// 局部变量
	}
}

局部变量: 类方法中的变量

for(int i = 0; i < 10; i++) {}
 //  i 局部变量在{}中可以使用,离开就失效

实例变量(成员变量: member v ):独立于方法之外的变量,没有static 修饰(事实上我应该称之为全局变量)

public class Test{
		//这个实例变量只对子类可见
		public String  name;
		//私有变量,仅仅在该类可见
		private double sid;
		.......
}

常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。

final	常量名=值;			
final	double PI=3.14;	
final	String	LOVE="hello";

常量名一般使用大写字符。

变量的命名规范
1.所有变量、方法、类名:见名知意
2.类成员变量:首字母小写和驼峰原则 : monthSalary
3.局部变量:首字母小写和驼峰原则
4.常量:大写字母和下划线:MAX_VALUE
5.类名:首字母大写和驼峰原则: Man, GoodMan
6.方法名:首字母小写和驼峰原则: run(), runRun()

运算符
运算符operator
Java 语言支持如下运算符:
算术运算符: +,-,,/,%,++,–
赋值运算符 =
关系运算符: >,<,>=,<=,==,!= instanceof
逻辑运算符: &&,||,!
位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
条件运算符 ?:
扩展赋值运算符:+=,-=,
=,/=

^ 异或 有用的很,经常见到千万不要被误导了。

二元运算符

整数运算
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

public static void main(String[] args) {
	long a = 1231321311231231L;
	int b = 1213;
	short c = 10;
	byte d = 8;
	
	System.out.println((a+b+c+d));	//Long类型
	System.out.println((b + c + d));//Int类型
	System.out.println((c + d));//Int类型
}

浮点运算
如果两个操作数有一个为double, 则结果为double. 只有两个操作数都是float, 则结果才为float.

public static void main(String[] args) {
	float a = 3.14565F;
	double b = 3.194546464;
	float c = 1.3123123F;
	System.out.println(a+b); //double类型
	System.out.println(b+c); //double类型
	System.out.println(a+c); //float类型
	}

关系运算符

java日常记录1_Java_04


一元运算符

(++)( --)这个是一个操作数进行的

如: i++ ; ++ i …

public static void	main(String[] args) {
	 int a = 3;
	 int b = a++;  //执行完后,b=3。先给b赋值,再自增。
 	 int c = ++ a;    //执行完后,c=5。先自增,再给b赋值
 	 }

逻辑运算符

逻辑与:&&和&,逻辑或:||和|,逻辑非:!。

java日常记录1_java_05

public static void main(String[] args) { 
	boolean a = true;
	boolean b = false;
	System.out.println("a && b = " + (a&&b)); 
	System.out.println("a || b = " + (a||b) ); 
	System.out.println("!(a && b) = " + !(a && b));
	}

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。在两个操作数都为 true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断 第二个操作了。
逻辑与只要有一个为false, 则直接返回false. 逻辑或只要有一个为true, 则直接返回true;

位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。

A = 0011 1100

B = 0000 1101

A&b = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~A= 1100 0011

java日常记录1_Java_06


右移一位相当于除2取商。左移一位相当于乘2。

【常见面试题:int a=2*8怎样运算效率最快?】

public static void main(String[] args) {
 System.out.println(2 << 3);
}

用移位运算 int a=2<<3;
a就是2乘以8 最后结果是16 这是最省内存 最有效率的方法
这个方法确实高效率的。我来解释一下:
2的二进制是10 在32位存储器里面是0000 0000 0000 0010
左移三位后变成 0000 0000 0001 0000 也就是16

扩展运算符

java日常记录1_java_07


字符串连接符

“+” 一般采用

String s1 =“ab”;

String s2 = “x”;

String s3 = s1 + s2;

三目条件运算符

x	?	y	:	z

其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

public static void main(String[] args) {
	 int score = 80;
	String type = score < 60 ? "不及格" : "及格";
	System.out.println("type= " + type);
}

运算符优先级

java日常记录1_System_08


附加

JavaDoc是一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API,易读且清晰明了。在简略介绍JavaDoc写法之后,再看一下在Intellij Idea 中如何将代码中的注释生成HTML文档。

javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。javadoc命令是用来生成自己API文档的,使用方式:使用 命令行在目标文件所在目录输入javadoc +文件名.java。


标签:java,记录,int,System,VALUE,日常,println,out
From: https://blog.51cto.com/u_16330533/8112746

相关文章

  • java日常记录3--方法
    今天,我们来瞧瞧方法:那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用例如:System.out.println();println()是一个方法。System是系统类。out是标准输出对象。方法的......
  • 软件测试|快速、可靠的JavaScript依赖管理工具——yarn
    简介Yarn是一个由Facebook于2016年推出的JavaScript软件包管理器。它的目标是解决npm(Node.js的默认软件包管理器)在性能和可靠性方面的一些问题。Yarn旨在提供更快、更安全、更稳定的依赖项安装过程,使JavaScript开发人员能够更轻松地管理和构建项目。本文将详细介绍Yarn的特点、......
  • 软件测试|Yarn安装指南:在不同平台上快速启动JavaScript项目
    简介Yarn是JavaScript生态系统中流行的包管理器,它可以加快依赖项的安装速度,提供更好的性能和安全性。本文将为介绍在不同平台上安装Yarn的教程,帮助大家快速启动JavaScript项目。Linux安装Yarn在Linux系统上安装Yarn通常有几种方式,具体取决于我们的系统和包管理器。以下是一些......
  • 问题记录 <VSCode Copilot 连接问题:Extension activation failed: "getaddrinfo EAI_A
    问题描述VSCode使用Copilot时遇到如下问题:Extensionactivationfailed:"getaddrinfoEAI_AGAINapi.github.com"解决方式笔者尝试了修改hosts、代理、重装插件等方法,但没有起效。下面的方法解决了问题(在VSCode中设置proxy)打开代理,查看代理http地址,复制;打开VSCode,打......
  • 框架记录
     流程表流程节点设置表:Sys_WorkFlowStepStepType存的是“审批类型,1、用户;2角色”  如果StepType是1(用户)StepValue存的是用户id,如果StepType是2(角色)存的是角色ID 具体某个业务的流程表:Sys_WorkFlowTableStep......
  • Redisson在日常开发过程中的使用
    使用BitSet实现日期连续签到@GetMapping("/user/sign/{id}")publicResult<String>userSign(@PathVariable("id")Longid,@RequestParam(value="date",required=false)......
  • 理解 JavaScript 的 async/await
    1.async和await在干什么任意一个名称都是有意义的,先从字面意思来理解。async是“异步”的简写,而await可以认为是asyncwait的简写。所以应该很好理解async用于申明一个function是异步的,而await用于等待一个异步方法执行完成。另外还有一个很有意思的语法规定,awai......
  • Java 通过collectors.groupingBy根据某个字段统计
    要使用Collectors.groupingBy根据某个字段统计,你可以通过提供一个函数来指定分组的条件。假设你有一个包含Person对象的列表,每个对象都有age字段表示年龄,你想要根据年龄分组,并统计每个年龄组的人数。以下是一个使用Collectors.groupingBy的示例代码:importjava.util.Arrays;imp......
  • [个人记录] datax同步Oracle数据到MSSQL - 报错提示插入重复主键
    之前试着把Oracle的数据同步到MSSQL,表到表的操作,结果提示插入重复主键,在Oracle使用的是rowid插入到MSSQL表的id主键中去,该id设置了主键约束。一开始很纳闷,怎么会重复插入主键呢?rowid不是唯一的吗?因为搞了很久没搞定,换了其他生成主键的方法也没成功,sys_guid()之类的。......
  • 岩土工程监测利器:多通道振弦数据记录仪应用铁路隧道监测
    岩土工程监测利器:多通道振弦数据记录仪应用铁路隧道监测岩土工程监测是工程建设中十分重要的一环,特别是在铁路隧道工程中,岩土工程监测更是不可或缺的一项。其中,振弦数据记录仪是一种非常重要的仪器,可以帮助监测人员实时监测隧道内部的变化,为工程的安全运行提供重要的保障。本文将......