02_java基础学习_基础语法(上)01_day02总结

2024-08-23 23:38

本文主要是介绍02_java基础学习_基础语法(上)01_day02总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 涉及到的知识点有:
    • 1、关键字(掌握)
    • 2、标识符(掌握)
    • 3、注释(掌握)
    • 4、常量(掌握)
    • 5、进制转换(了解)
    • 6、变量(掌握)
    • 7、数据类型(掌握)
    • 8、数据类型转换(掌握)

1、关键字(掌握)

(1)被Java语言赋予特定含义的单词。
(2)特点:组成关键字的字母全部小写。
(3)注意事项:A:goto和const作为保留字存在,目前并不使用。注意:保留字在jdk的新版本中可能会提升为关键字。B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记。示例代码如下:
/*关键字:被java语言赋予特定含义的单词。特点:组成关键字单词的字母全部小写。注意:A:goto和const是保留字,目前并不使用。注意:保留字在jdk的新版本中可能会提升为关键字。B:类似于UE、Notepad++这样的高级记事本,针对关键字都有特殊的颜色标记。
*/
class KeyWordDemo {public static void main(String[] args) {System.out.println("HelloWorld");}
}	

java中用到的关键字如下图所示:(50个左右)

2、标识符(掌握)

(1)就是给类、接口、方法、变量等起名字的字符序列。
(2)组成规则:A:可由英文大小写字母组成;B:可由数字组成;C:可由$和_组成;D:可由中文组成,但是不建议用中文!
(3)注意事项:A:不能以数字开头;B:不能是java中的关键字;C:java语言严格区分大小写。
(4)开发的常见的命名规则(见名知意)A:包的命名(全部小写),其实就是文件夹,用于把相同的类名进行区分。单级包:小写。举例:liuyi、com多级包:小写,用.隔开。举例:cn.itcast、com.baidu	(习惯是域名反写)B:类或者接口的命名一个单词:单词的首字母大写。举例:Student,Demo多个单词:每个单词首字母大写。举例:HelloWorld,StudentNameC:方法或者变量的命名一个单词:单词的首字母小写。举例:name,main多个单词:从第二个单词开始,每个单词首字母大写。举例:studentAge,showAllNames()D:常量的命名全部大写一个单词:大写。举例:PI多个单词:大写,并用_隔开。举例:STUDENT_MAX_AGE

3、注释(掌握)

(1)就是对程序进行解释说明的文字,不会被JVM解释执行。
(2)分类:A:单行注释://注释文字          单行注释可以嵌套使用。B:多行注释:/*注释文字*/        多行注释不可以嵌套使用。C:文档注释(后面讲):/**注释文字.*/      被javadoc工具解析生成一个说明书,面向对象部分讲解。
(3)把HelloWorld案例写了一个带注释的版本。后面我们要写一个程序的过程。需求:写一个程序,在控制台输出HelloWorld。分析:1:写一个java程序,首先定义类。2:程序要想能够被jvm调用,必须定义main方法。3:程序要想有输出结果,必须用输出语句。实现:	1:定义类用的是class关键字,后面跟的是类名。2:main方法的基本格式。3:输出语句的基本格式。代码体现:
(4)注释的作用:A:解释说明程序,提高了代码的阅读性。B:可以帮助我们调试程序。后面我们会讲解一个更高端的一个调试工具。

4、常量(掌握)

(1)在程序执行的过程中,其值不发生改变的量。
(2)Java中常量的分类:A:字面值常量例如:"hello"、10、trueB:自定义常量(后面讲)例如:final int x = 10;
(3)字面值常量A:字符串常量	"hello"B:整数常量		12,23C:小数常量		12.345D:字符常量		'a','A','0'E:布尔常量		true、falseF:空常量		null(后面讲)(闹) 代表什么都没有注意:空常量null不可以直接用于打印输出。

如下图所示:


(4)在Java中针对整数常量提供了四种表现形式A:二进制	由0,1组成。以0b开头。B:八进制	由0,1,...,7组成。以0开头。C:十进制	由0,1,...,9组成。整数默认是十进制。D:十六进制	由0,1,...,9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

如下图所示:

5、进制转换(了解)


(1)其他进制转换到十进制系数:就是每一个位上的数值。基数:x进制的基数就是x。权:对每一个位上的数据,从右往左,并且从0开始编号,对应的编号就是该数据的权。结果:系数*基数^权次幂之和。

如下图所示:


(2)十进制转换到其他进制方法:除基取余,直到商为0,余数反转。

如下图所示:


(3)进制转换的快速转换法A:十进制和二进制间的转换8421码。8421码是BCD代码中最常用的一种。B:二进制到八进制,十六进制的转换

如下图所示:


(4)原码、反码、补码

如下图所示:


(5)8421码:8421码是中国大陆的叫法,8421码是BCD代码中最常用的一种。在这种编码方式中每一位二值代码的1都是代表一个固定数值,把每一位的1代表的十进制数加起来,得到的结果就是它所代表的十进制数码。例如:	1		1		1		1		1		1		1		1128		64		32		16		8		4		2		1

6、变量(掌握)

(1)在程序的执行过程中,其值在某个范围内可以发生改变的量。
(2)变量的定义格式:A:数据类型 变量名 = 初始化值;B:数据类型 变量名;变量名 = 初始化值;
(3)从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域;因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用。
(4)为什么要定义变量呢?答:用来不断的存放同一类型的常量,并可以重复使用。
---------------------------------------		
使用变量的时候要注意的问题:A:作用域变量定义在哪一级大括号中,那个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。B:初始化值没有初始化值的变量不能直接使用。你只要在使用前给值就行,不一定非要在定义的时候就立即给值。推荐建议:在定义的时候就给值比较好。C:在一行上建议只定义一个变量。其实也可以定义多个变量,但是不建议,不好看。	

变量的概述及格式:

7、数据类型(掌握)

(1)Java语言是一种强类型语言,针对每种数据都提供了对应的数据类型。
(2)数据类型的分类:A:基本数据类型:4类8种。B:引用数据类型:类,接口,数组、字符串、Lambda。注意:字符串、Lambda这两种引用数据类型后面会学习到。Lambda:兰亩达,希腊字母表中排序第十一位的字母。大写Λ用于:粒子物理学上,Λ重子的符号。小写λ用于:物理上的波长符号、放射学的衰变常数、线性代数中的特征值。西里尔字母的 Л 是由 Lambda 演变而成。" λ "形似一个双手插兜儿,独自行走的人,表示"失意、无奈、孤独、低调、路过"之意的符号,最先流行于仙剑奇侠传。

如下图所示:


(3)基本数据类型A:整数类型		占用字节数(Byte)		默认是有符号的,数据范围是:	byte			1					-2^8 ~ 2^7-1(-128 ~ 127)short			2					-2^15 ~ 2^15-1int 			4					-2^31 ~ 2^31-1long			8					-2^63 ~ 2^63-1B:浮点类型float			4					-3.403e38 ~ 3.403e38		-3.4.3*10^38 ~ 3.4.3*10^38double			8					-1.798e308 ~ 1.798e308		-1.798*10^308 ~ 1.798*10^308C:字符类型char			2D:布尔类型boolean			1
---------------------------------------			
注意的地方:a:整数默认是int类型,小数默认是double。b:声明长整数要加L或者l。例如:int i1 = 600; // 正确。		long l1 = 88888888888L; // 必须加L或l否则会出错。一般用大写的L,因为小写的l像1。c:声明单精度的浮点数要加F或者f。例如:double d = 12345.6; // 正确。	float f = 12.3f; // 必须加f或F否则会出错。损失精度。d:char类型数据用来表示通常意义上的“字符”,字符常量为用单引号括起来的单个字符。例如:char ch1= 'a'; char ch2='中';e:Java字符采用 Unicode 编码,每个字符占两个字节,因而可用十六进制编码形式表示。注:Unicode是全球语言统一编码。f:boolean类型适于逻辑运算,一般用于程序流程控制。boolean类型数据只允许取值 true 或 false ,不可以 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。g:与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台影响。Java浮点类型常量有两种表示形式:十进制数形式,	如: 3.14		314.0科学记数法形式,如:3.14e2		3.14*10^2h:Java各整数类型有固定的表数范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移植性。i:所谓的有效数字:具体地说,是指在分析工作中实际能够测量到的数字。所谓能够测量到指的是包括最后一位估计的不确定的数字。例如:对于一个近似数,从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字。

8、数据类型转换(掌握)

(0)一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。
(1)boolean类型不能转换为其他的数据类型。
(2)默认转换(从小到大):A:byte,short,char --> int --> long -- float -- double。B:byte,short,char相互之间不转换,他们参与运算时首先默认转换为int类型。

如下图所示:


(3)强制转换(从大到小):A:可能会有精度的损失,一般不建议这样使用。B:格式:目标数据类型 变量名 = (目标数据类型)(被转换的数据);C:注意:不要随意的去使用强制转换,因为它隐含了精度损失的问题。
(4)思考题和面试题:思考题:请问下面这个有没有问题?double d = 12.345;float f = d;答:有问题,可能损失精度。A:下面两种方式有区别吗?float f1 = (float)12.345;float f2 = 12.345f;答:f1其实是通过一个double类型转换过来的。而f2本身就是一个float类型。B:下面的程序有问题吗,如果有,在哪里呢?byte b1 = 3;byte b2 = 4;byte b3 = b1 + b2;	// 数据类型提升了,有问题,可能会损失精度。byte b4 = 3 + 4;	// 没问题。常量,是先把结果计算出来,然后看是否在byte的范围内,如果在就不报错!C:下面的操作结果是什么呢?byte b = (byte)130;	// -126我们要想知道结果是什么,就应该知道是如何进行计算的。而我们又知道计算机中数据的运算都是补码进行的。而要得到补码,首先要计算出数据的二进制。a:获取130这个数据的二进制。首先130默认是有符号的int类型。00000000 00000000 00000000 10000010这是130的原码,也是反码,还是补码。即在计算机内部存储的是补码:00000000 00000000 00000000 10000010b:做截取操作,截成byte类型的了。10000010 这个结果是补码。注意:电脑显示屏幕显示的是原码,且为十进制。c:即已知补码求原码。符号位		数值位补码:	1			0000010反码:	1			0000001原码:	1			1111110即得到输出是-126D:字符参与运算是查找ASCII里面的值'a' --> 97'A' --> 65'0' --> 48System.out.println('a'); // 97System.out.println('a' + 1); // 98E:字符串参与运算首先运算是从左到右的。字符串数据+其他数据做,结果是字符串类型。因为这里的+不是加法运算,而是是字符串的连接符(拼接符)。其他数据+其他数据+字符串数据,先计算其他的值后再与字符串进行拼接。System.out.println("hello"+'a'+1); // helloa1System.out.println('a'+1+"hello"); // 98helloSystem.out.println("5+5="+5+5);	// 5+5=55System.out.println(5+5+"=5+5");	// 10=5+5

我的GitHub地址:https://github.com/heizemingjun
我的博客园地址:https://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址:https://blog.leanote.com/chenmingjun
Copyright ©2018~2019 黑泽君
【转载文章务必保留出处和署名,谢谢!】

这篇关于02_java基础学习_基础语法(上)01_day02总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100827

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06