java 基础学习1

目录

一.注释

二.关键字

三.字面量

四.变量和标识符

五.键盘录入 

六.运算符


一.注释

1.单行注释://注释信息

2.多行注释:/* 注释信息*/

3.文档注释:/** 注释信息*/   

注:文档注释暂时用不上

二.关键字

关键字: 被Java赋予了特定涵义的英文单词。
1.关键字的字母全部小写。
2.常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。 

例如:class关键字表示定义一个类,后面跟随类名

 

三.字面量

字面量:告诉程序员数据在程序中的书写格式

执行:

public class hlt1 {public static void main(String[] args) {System.out.println(123);}
}

注意:

null需要通过字符串形式打印出来

特殊字面量:

四.变量和标识符

 1.变量的声明:在使用变量之前,需要先声明它们。声明变量时需要指定变量的类型和名称。例如,int num; 声明了一个整数类型的变量名为 num。

2.变量的赋值:在声明变量后,可以通过赋值将具体的数据存储到变量中。例如,num = 10; 将整数值 10 赋给了变量 num。

3.变量的初始化:声明变量的同时也可以进行赋值操作,这称为变量的初始化。例如,int num = 10; 声明并初始化了一个整数类型的变量 num。

4.变量的命名规则:Java对变量命名有一些规则。变量名只能包含字母、数字、下划线和美元符号,并且不能以数字开头。此外,变量名是区分大小写的。

5.变量的作用域:变量的作用域指的是变量在程序中的可见范围。在Java中,变量可以具有不同的作用域,如方法内部、代码块内部或类的成员变量等。

6.数据类型:Java中的变量都有特定的数据类型,用于指定变量可以存储的数据范围和所占内存空间。常见的数据类型包括整数类型(如int、long)、浮点数类型(如float、double)、字符类型(char)和布尔类型(boolean)等。

注意:如果要定义long类型的变量,在数据值的后面需要加一个L作为后缀。

           定义float类型变量的时候,数据值也需要加一个F作为后缀。

五.键盘录入 

Java帮我们写好- -个类叫Scanner,这个类就可以接收键盘输入的数字。

 演示如何使用Scanner类实现键盘录入:

import java.util.Scanner;public class KeyboardInputExample {public static void main(String[] args) {// 创建Scanner对象Scanner scanner = new Scanner(System.in);// 提示用户输入信息System.out.print("请输入您的姓名:");// 使用Scanner的nextLine方法获取用户输入的一行文本String name = scanner.nextLine();// 提示用户输入年龄System.out.print("请输入您的年龄:");// 使用Scanner的nextInt方法获取用户输入的整数int age = scanner.nextInt();// 输出用户输入的信息System.out.println("您的姓名是:" + name);System.out.println("您的年龄是:" + age);// 关闭Scanner对象scanner.close();}
}

在上面的示例中,我们通过创建Scanner对象并传入System.in参数来实现键盘录入。然后使用Scanner的nextLine方法获取用户输入的一行文本,使用nextInt方法获取用户输入的整数。最后,输出用户输入的信息。

注意:当使用Scanner类进行键盘录入时,需要确保输入的数据类型与所期望的数据类型相匹配,否则可能会出现异常。此外,在程序结束后,应该调用Scanner对象的close方法来关闭Scanner对象,释放资源。

六.运算符

运算符就是对常量或者变量进行操作的符号。比如: +  -  *  /

  • 表达式:

​   用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。

​   比如:a + b 这个整体就是表达式。

​   而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。

  • 注意:

/:1.整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。

2.小数直接参与运算,得到的结果有可能是不精确的。

System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335

%:取模、取余。

   他做的也是除法运算,只不过获取的是余数而已。

System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
应用场景:
//可以利用取模来判断一个数是奇数还是偶数
System.out.println(15 % 2);//1  奇数
  • 隐式转换:(自动转换)

也叫自动类型提升。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。(就是小的给大的,可以直接给)

int i = 10;
double d = i; // 自动转换为 double 类型
System.out.println(d);//输出是10.0

* 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。

* byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。

byte b1 = 10;
byte b2 = 20;
??? result = b1 + b2;//int
问变量result是什么类型的?

 因为b1和b2都是byte类型的。所以在参与计算的时候,变量b1和变量b2里面的值都会自动提升为int类型的。最终其实就是两个int类型的相加,最终结果也是int类型的。

取值范围从小到大的关系:

​   byte short int long float double

  • 强制转换

当一个大范围的数据类型被赋值给一个小范围的数据类型时,需要使用强制转换。强制转换可以通过将变量的类型放在括号中来实现。

double d = 10.5;
int i = (int) d; // 强制转换为 int 类型
System.out.println(i);

需要注意的是,强制转换可能会导致数据丢失(数据的精度丢失)或溢出,因此需要谨慎使用。

  •  自增自减运算符

放在变量的前面,我们叫做先++。 比如:++a

 放在变量的后面,我们叫做后++。 比如:a++

注意:不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

int a = 10;
a++;//就是让变量a里面的值 + 1
System.out.println(a);//11
++a;//就是让变量a里面的值 + 1
System.out.println(a);//12
  • 字符串的+操作

当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。(字符串只有+操作,没有其他操作)

当连续进行+操作时,从左到右逐个执行的。

1 + "abc" + 1

结果:"1abc1"

1 + 2 + "abc" + 2 + 1

 结果:“3abc21” 

注意:第一步:1 + 2  在这个过程中,没有字符串参与的,所以做的是加法运算,结果为3。

第二步:3 + "abc"。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc"。

​第三步:"3abc" + 2。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc2"。

第四步:"3abc2" + 1。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串“3abc21”

String name = "hzttao";
System.out.println("我的名字是" + name);

结果: 我的名字是hzttao

当字符串跟变量相加的时候,实际上是跟变量里面的值进行拼接。

  • 字符的+操作

当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。

char c = 'a';
int result = c + 0;
System.out.println(result);//97
  • 赋值运算符

public class OperatorDemo6 {public static void main(String[] args) {//1.最为简单的赋值运算符用法int a = 10;//就是把10赋值给变量aSystem.out.println(a);//2.如果等号右边需要进行计算。int b = 20;int c = a + b;//先计算等号右边的,把计算的结果赋值给左边的变量System.out.println(c);//3.特殊的用法a = a + 10;//先计算等号右边的,把计算的结果赋值给左边的变量System.out.println(a);//20}
}
  •  扩展赋值运算符

+=、-=、*=、/=、%=

注意:扩展的赋值运算符中隐层还包含了一个强制转换。

以+=为例:a += b ,实际上相当于 a = (byte)(a + b);

  • 关系运算符

注意:关系运算符最终的结果一定是布尔类型的。要么是true,要么是false

           在写==的时候,千万不要写成=

  • 逻辑运算符

&:逻辑与(而且)

​   两边都为真,结果才是真,只要有一个为假,那么结果就是假。

|:逻辑或(或者)

​   两边都为假,结果才是假,只要有一个为真,那么结果就是真。

  • ^(异或)的使用

如果两边相同,结果为false,如果两边不同,结果为true

  • !(取反)的使用

是取反,也叫做非。

false取反就是true,true取反就是false(取反最多只用一个)

  • 短路逻辑运算符

分类:  &&   ||

&&:运算结果跟&是一模一样的,只不过具有短路效果。

||:运算结果跟|是一模一样的。只不过具有短路效果。

逻辑核心 :

​   当左边不能确定整个表达式的结果,右边才会执行。 

​   当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。

例如:

1.用户名正确  & 密码正确

 如果使用一个&,不管用户名是否正确都会去验证密码。

2.用户名正确  &&  密码正确

​如果用户名输入正确了,那么才会验证密码是否输入正确。 如果用户名输入错误了,那么就不会再去验证密码是否正确,最终的结果直接为false。从而提高了程序运行的效率。

  • 三元运算符

又叫做:三元表达式或者问号冒号表达式。

格式:关系表达式 ? 表达式1 :表达式2 ;

计算规则:

 计算关系表达式的值。

 如果关系表达式的值为真,那么执行表达式1。

 如果关系表达式的值为假,那么执行表达式2。

int a = 10;int b = 20;//格式:关系表达式 ? 表达式1 : 表达式2 ;//注意点://三元运算符的最终结果一定要被使用。//要么赋值给一个变量,要么直接输出。int max =  a > b ? a : b ;
  •  运算符的优先级

在Java中涉及了很多的运算符,每一种运算符都有各自的优先级。但是这些优先级不需要记忆。

我们只要知道其中一点: 小括号优先于所有。

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

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

相关文章

Django介绍

一、介绍 Django是Python语言中的一个Web框架,Python语言中主流的web框架有Django、Tornado、Flask 等多种 优势:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等功能,是一个全能型框架,拥有自己的A…

有趣的css - 好看的呼吸灯效果

整体效果 这个效果主要用 css3 的 animation 属性来实现的。 这个效果可以用作在网站的整体 Loading&#xff0c;也可以放在网站首屏当一个 banner 的背景也是非常棒的&#xff01; 代码部分 html 部分代码&#xff1a; <div class"app"><span class&quo…

【问题解决】java-word转pdf踩坑

问题情境&#xff1a; 项目中采用word转pdf&#xff0c;最开始使用的pdf相关的apache的pdfbox和itextpdf&#xff0c;后面发现对于有图片背景的word转pdf的情景&#xff0c;word中的背景图会直接占用位置&#xff0c;导致正文不会正确落在背景图上。 解决方案&#xff1a; 采…

研发日记,Matlab/Simulink避坑指南(八)——else if分支结构Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(三)——向上取整Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》 见《研发日记&#xff0c;Matlab/Simuli…

web前端---------盒子模型2

一------内边距 padding 属性用来设置元素的内边距长度&#xff0c;元素在默认情况下没有内边距&#xff0c;其值为none。 &#xff08;1&#xff09;当 padding 属性中仅含一个值时&#xff0c;该长度应用在上、下、左、右四个区域。 &#xff08;2&#xff09;当 padding …

vue3使用最新的属性defineModel实现父子组件数据响应式绑定

子父之间使用v-model双向绑定数据&#xff0c;子组件每次都要写emit和props觉得麻烦&#xff1f;以前&#xff0c;为了使组件支持与v-model双向绑定&#xff0c;它需要&#xff08;1&#xff09;声明prop&#xff0c;&#xff08;2&#xff09;在打算更新prop时发出相应的updat…

架构篇21:高性能负载均衡-算法

文章目录 轮询加权轮询负载最低优先性能最优类Hash 类源地址 HashID Hash小结负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发,抛开细节上的差异,根据算法期望达到的目的,大体上可以分为下面几类。 任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处…

【Vue】1-2、Webpack 中的插件

一、Webpack 插件的作用 通过安装和配置第三方的插件&#xff0c;可以拓展 webpack 的能力&#xff0c;从而让 webpack 用起来更方便。 二、两个常用插件 1&#xff09;webpack-dev-server 类似于 node.js 使用的 nodemon 工具 每当修改了源代码&#xff0c;webpack 会自动…

C++ 类的初始化列表

C 中的类必须使用初始化列表的 4 种情况&#xff1a; 一&#xff0c;继承于一个基类&#xff0c;这个基类的构造函数有参数时。 #include <stdio.h> #include <stdlib.h>#pragma pack(4) class CBase { public:CBase(int value): bBaseValue(value){}~CBase(){}p…

处理 Maven jar 包下载失败问题

目录 1、配置国内 Maven 源 配置和检测 settings.xml 配置国内源 2、删除本地 maven 创库的 jar 重新下载 3、其他问题 一般情况下 maven jar 包下载不成功可能有两种情况&#xff1a; 1&#xff09;没有配置国内源 2&#xff09;jar 包需要重新下载 下面详细讲解如何解决这两…

【jetson笔记】解决vscode远程调试qt.qpa.xcb: could not connect to display报错

配置x11转发 jetson远程安装x11转发 安装Xming Xming下载 安装完成后打开安装目录C:\Program Files (x86)\Xming 用记事本打开X0.hosts文件&#xff0c;添加jetson IP地址 后续IP改变需要重新修改配置文件 localhost 192.168.107.57打开Xlaunch Win菜单搜索Xlaundch打开 一…

x-cmd pkg | go - Google 开发的开源编程语言

目录 简介首次用户技术特点竞品分析编译型语言解释型语言JavaWebAssebmly 进一步阅读 简介 Go 语言&#xff08;或 Golang&#xff09;是 Google 开发的开源编程语言&#xff0c;诞生于 2006 年。其设计目标是“兼具 Python 等动态语言的开发速度和 C/C 等编译型语言的性能与安…

机器学习---无偏估计

1. 如何理解无偏估计 无偏估计&#xff1a;就是我认为所有样本出现的概率⼀样。 假如有N种样本我们认为所有样本出现概率都是 1/N。然后根据这个来计算数学期望。此时的数学期望就是我们平常讲 的平均值。数学期望本质就 是平均值。 2. 无偏估计为何叫做“无偏”&#xff1…

20240128-读书带来的影响

我本身不算是一个特别喜欢读书的人&#xff0c;更多的时候其实是为了读书而读书。在坚持每天读了一小时书之后&#xff0c;我发现自身开始慢慢有些变化。是什么时候突然有了这种感悟呢&#xff0c;是最近每周5小时左右的微信读书以及纸质书籍的阅读&#xff0c;让我体会到了读书…

常见の算法5

位图 一个int类型32字节&#xff0c;可以表示0-31这32个数出没出现过&#xff0c;出现过1没出现0&#xff0c;再扩大一点搞个数组&#xff0c;就可以表示0-1023出没出现过&#xff0c;一个long类型可储存64位 如何把10位组成的数&#xff0c;第四位由1改成零 package class05…

嵌入式linux面试题目总结

Linux系统中常见的面试题目&#xff0c;分享&#xff0c;欢迎大家前来交流学习。 1、嵌入式系统中的CAN通信协议是什么&#xff1f; CAN&#xff08;Controller Area Network&#xff09;通信协议是一种广泛应用于嵌入式系统中的串行通信协议。它最初由德国汽车工业联合会开发…

VS如何打包环境

以VS2005为例子,做好的软件需要发给客户现场升级,有时候总是因为系统,环境变量不同导致软件不能正常运行打开,这也是程序员非常头疼的问题,今天我们就一起看下打包环境变量. 这样我们的环境变量就打包到setup中了,目标机台安装即可!!!

Java集合-Map接口(key-value)

Map接口的特点&#xff1a;①KV键值对方式存储②Key键唯一&#xff0c;Value允许重复③无序。 Map有四个实现类&#xff1a;1.HashMap类2.LinkedHashMap类3.TreeMap类4.Hashtable类 1.HashMap类&#xff1a; 存储结构&#xff1a;哈希表 数组Node[ ] 链表&#xff08;红黑…

在windows环境下安装hadoop

Hadoop是一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。但这个架构是基于java语言开发的&#xff0c;所以要先进行jdk的安装&#xff0c;如果电脑已经配置过jdk或者是曾经运行成功过java文件&#xff0c;那就可以跳过第一步。 …

Jenkins上跑自动化项目,case出现错误时,导致项目运行时间过长,该如何处理?

1、方案一&#xff1a;Jenkins上调整 进入配置&#xff1a; 构建环境&#xff1a; 自行选择超时时间即可&#xff5e; 2、方案二&#xff1a;代码调整【python】 安装插件&#xff1a;pytest-timeout 选择一&#xff1a;装饰器用法&#xff1a;将单个测试用例标记为超时&…