首页 > 编程语言 >Java基础学习(一)

Java基础学习(一)

时间:2023-03-01 18:34:48浏览次数:34  
标签:语句 Java 示例 int 代码 基础 学习 类型

目录

简单Java代码

public class Test {

	public static void main(String[] args) {
	
		System.out.println("Hello World");
	
	}

}

Java中严格区分大小写

注释

在Java中有以下注释

  1. // 单行注释
  2. /*
    多行注释
    */
  3. /**
    可以自动生成的文档注释
    */

数据类型

四整型、两浮点、一字符、一布尔

整型

  • byte 1-个字节
  • short 2个字节
  • int 4个字节
  • long 8个字节

浮点型

  • float 4个字节
  • double 8个字节
	float a = 3.0;//如果不在后面加上f或者F,那么默认为double
	float b = 3.0F; // 这是float类型
	//double类型后也可加添加d或者D

char类型

  • 表示Unicode编码的字符单元的类型
	char a = 'a'; //与String类型不同,char类型是单引号

boolean类型

  • 只有falsetrue两个值,用来逻辑判断
	boolean a = true;
	boolean b = false;

变量

命名规范

  • 只能以字母和下划线开头,不能用数字开头
  • 不可使用Java的关键字和保留字命名
  • 建议使用大驼峰和小驼峰来命名类、方法、变量的名字
	// 声明变量
	int a;
	a = 0;
	int b = 0;//以上两种方式均可

常量

  • 可以使用final关键字来修饰,且命名时应均为大写
  • final关键字修饰之后,在程序使用常量时不可更改值
  • static 可以和final一起使用

类型之间的转换

可以看到下图所示

强制类型转换

  • 代码示例
	double a = 1.20;
	int b = (int) a; 

主要是用于大的类型转换小类型,但是会有可能缺失精准度


运算符

  • 常用的有加+、减-、乘*、除/
  • 还有取余%
  • 也可以使用数学函数

结合赋值

  • 代码示例
	int a = 0;
	a += 4;//等价于 a = a + 4;
	a *= 4;
	a %= 4;
	a /= 4;

自增和自减

  • 代码示例
	int a = 0;
	//第一种写法
	a++;
	a--;//或者可以
	//第二种写法
	--a;
	++a;
  • 如果是第一种写法意思是下次使用变量之后增加或者减少1。
  • 如果是第二种写法意思是下次使用变量之前增加或者减少1。

boolean运算符

  1. ==!= 检测相等性,不等返回false,相等返回true。
  2. <><=>=,小于等于和大于等于符号位置不可改变
  3. !逻辑非
  4. &&短路与
    1. 代码示例
      	if(a == 1 && b == 2){
      		return true;
      	}
      
    2.如果a == 1成立,那么就不会执行b == 2
  5. ||短路或,和短路与一样的含义
  6. 三目运算符 x < y ? x : y
    1. 如果x大于y那么将x返回,否则返回y
  7. 位运算符
    • &|^~,与、或、异或、非
    • <<>>,左移右移

注意运算符的优先级,优先级的不同会影响结果的准确性

其他类型

枚举类型

  • 代码示例
	enum Size{SMALL, NEDIUM, MAX};
	Size s = Size.SMALL;
  • 需要使用enum关键字来声明为枚举类型

String类型

  • String类型从概念上就是Unicode字符序列。
  • String类型也称为不可变字符串,但是可以修改字符串变量,引用另外一个字符串
  • 不可变字符串的优点:编译器可以让字符串共享
  • 更改字符型变量的值时,Java会自动进行垃圾回收掉旧的值
  • 如果想判断字符串是否相等,可以使用equals方法
  • 不可使用==来判断,==只能判断两个字符串是否放在同一个位置
  • 如果虚拟机始终将相同的字符串共享,则可以使用==来判断
  • 但是经过+或者substring方法操作过的并不是共享的
  • String类型可以为空串,也可以赋值为null

输入输出

读取输入

  • 代码示例
	Scanner in = newScanner(System.in);
  • 需要先构造一个Scanner对象,并且与"标准输入流"System.in关联起来
  • API
    • String nextLine(), 读取输入的一行内容
    • String next(),读取下一个输入的内容,以空格作为分隔符
    • int nextInt()
    • double nextDouble(),读取下一个整数或者浮点型数字
    • boolean hasNext(),检测输入中是否还有其他字符
    • boolean hasNextInt()
    • boolean hansNextDouble(),检测输入中是否还有其他整数或浮点数字

格式化输出

  • 可以使用printf来进行格式化输出

控制流程

块域

  • 代码示例
	{
		//父级块
		//这里面所有代码都属于一个块区
		//可以嵌套块
		{
			//子级块
		
		}
	
	}
  • 但是父级块声明的变量名,不可再出现在子级块中
  • 父级定义的变量可以在子级块中进行访问,但是子级块的变量父子块访问不到,即作用域

条件语句

  • 代码示例
	//条件语句写方法一
	if(条件语句){
	}

	//条件语句写法二
	if(条件语句){
	
	}else{
		
	}
	
	//条件语句写法四
	if(条件语句){
	
	}else if(条件语句){
	
	}else{
	
	}
  • 以上写法均可,按需挑选
  • 当然也可以嵌套,但是不建议嵌套多层

循环

while

  • 代码示例
	while(条件语句){
		//循环体
	}
  • 首先会检查条件语句是否成立,如果成立进行循环体中的代码执行,否则不执行

do while

  • 代码示例
	do{
		// 循环体
		
	}while(条件语句)
  • while循环有一点不同,不管条件语句是否成立都会先执行一次循环体的代码

for

  • 代码示例
	for(int i = 0; i < num; i++){
		//循环体
	}
	
  • 是循环语句中一种支持迭代的结构
  • 执行顺序
    • 先找到int i = 0;
    • 在判断i < num;是否成立
    • 如果成立进行循环体代码,否则直接跳出循环
    • 最后在进行i++为下一次循环做准备

注意:for语句内部定义的变量无法再循环体外部使用。

以上循环语句均可嵌套使用,但建议避免达到3层及以上的嵌套,会导致程序的时间复杂度增加

switch

  • 代码示例
	// 条件可以是char、byte、short、int的常量表达式
	// 也可以是枚举常量
	//从Java SE7开始可以是字符串字面量
	switch(条件){
		case 1 : 
			//代码
			break;
		case 2 :
			//代码
			break;
		default: 
			break;
	}
  • 将条件于下面case进行匹配,然后执行相应代码
  • 应当保持每一个case最后都有break

中断控制流程语句

break

  • 会终止进行的控制流程语句,让程序执行与最外层控制流程语句同级的后续语句

continue

  • 会终止最内层控制流程语句,然后最内侧控制流程语句继续进行

大数值

BigInteger

  • 该类实现了任意精度的整数运算

BigDecimal

  • 该类实现了任意精度的浮点数值运算

数组

  • 用来存储同一类型值的集合
  • 代码示例
	int[] a = new int[10]; // 创建一个长度为10的int类型数组
	int[] b = {1,2,3,4,5}; // 创建一个长度为5的int类型数组
  • 第二种方式是将赋值和定长一起
  • 数组一旦创建成功不可修改长度
  • 如果只是创建数组不进行赋值,则会初始化为默认值,数字数组初始化为0,boolean数组初始化为false,对象数组初始化为null

for each

  • 代码示例
	for(类型 名称 : 数组名称){
		//代码
	}

标签:语句,Java,示例,int,代码,基础,学习,类型
From: https://www.cnblogs.com/zmhomecomputer1104/p/17169295.html

相关文章

  • java 如何使用多线程调用类的静态方法?
     1.情景展示静态方法内部实现:将指定内容生成图片格式的二维码;如何通过多线程实现?2.分析之所以采用多线程,是为了节省时间 3.解决方案准备工作logo文件......
  • 扩展欧几里得学习笔记
    温馨提示:本文推式子比较多,建议跟着文章自己推一推。扩展欧几里得是什么扩展欧几里得(exgcd)是一个可以用来求\(ax+by=c\)(\(c\%\gcd(a,b)=0\),否则无解)的解的算法求解\(ax......
  • java LinkedList 源码
    概述底层数据结构是双向链表(jdk1.6是双向循环,1.7开始不循环了),所以新增/删除效率高,查询/修改效率相对较低全能冠军:既是一个顺序容器,也是队列,还可以作为栈使用未实现Ran......
  • 均值不等式学习笔记
    从平均数说起我们都知道\(n\)个数的平均数表示为:\[\frac{a_1+a_2+a_3+\cdotsa_n}{n}\]这种最常见的平均数被称为“算术平均数”(ArithmeticMean)。还有一种常用的平均......
  • JAVAWEB-NOTE05-Maven
    目录概述提供了一套标准的项目化结构提供了一套标准化的构建流程提供了一套依赖管理机制简介安装配置安装基本使用常用命令生命周期IDEA配置Maven配置环境Maven坐标IDEA新......
  • python基础知识整理
    一:pyhton数据类型数字类型:整型(int)/浮点型(float)/布尔型(bool)/复数型(complex)非数字类型:字符串(str)/列表(list)/元组(tuple)/字典(dict)不变类型:整型(int)/......
  • java base64编码、解码的三种方式
    1.用法介绍方式一:DatatypeConverter使用jdk自带的DatatypeConverter.java类实现,但是jdk版本必须>=1.6。importjava.io.UnsupportedEncodingException;importjavax.xml.bin......
  • java AES加密、解密(兼容windows和linux)
     1.准备工作2018年10月24日10点46分importjava.security.SecureRandom;importjavax.crypto.Cipher;importjavax.crypto.KeyGenerator;importjavax.crypto.SecretKe......
  • GIT学习
    目录git,gitee,github,gitlabgit使用流程git软件安装git工作流程git常用命令git忽略文件代码管理软件 -git -svn他们能做的事情---》咱们用来做代码管理[文件管理]1.帮......
  • java List 源码
    概述底层通过数组实现,所以查询/更新效率很高,删除/增加跟位置相关,除未实现同步外和Vector大致相同扩容publicbooleanadd(Ee){//数组扩容,不是一定要扩容,需要......