Java基础学习总结(20)——基础语法

Java基础学习总结(20)——基础语法Java基础学习总结(20)——基础语法

大家好,又见面了,我是你们的朋友全栈君。

一.标识符

  

二.关键字

  

三.JAVA基础数据类型

3.1. java常量

  

3.2. java变量

  

  从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行。一个.exe文件存放在硬盘上是无法运行的,在硬盘上看到的.exe文件无非就是一个文件而已,当我们双击这个.exe文件时,运行起来的时候实际上是整个.exe文件被放在了在内存里面,然后操作系统找到main方法,也就是程序的入口,然后就开始执行了。执行的过程之中,会不断地在内存里面分配一些区域,变量在内存里面就是一小块区域,变量有两个概念,一个是变量的名字,另一个是变量的值,即这一小块区域是有名字的,里面装着一个值,因此以后要想访问这小块区域里面的内容就可以根据这小块区域的名字来访问了。因此,变量的本质就是一小块内存区域。就变量来说,该在内存里面分配多大的存储空间呢?不同的变量类型分配不同大小的存储空间,每一个变量都是属于特定的数据类型的,声明成不同的数据类型,它就在内存里面分配不同的存储空间。

  变量作用域:变量的作用域只在“{  }”有效,出了这个“{  }”就没有作用了

3.3. java变量的分类

  

3.4. java局部变量与成员变量

  

3.5. java数据类型划分

  

 四. java数据类型讲解

4.1.boolean——布尔型

  

4.2.char——字符型

    

  全球的文字放到计算机里面表示全是0和1,Unicode是统一了全世界国家文字的一种编码方式,用这样的编码可以把全世界国家的文字连接在一起。Unicode编码又分为两种,一种是Utf-8,另一种是Utf-16。JAVA所采用的是Utf-16,每一个字符占2个字节,任何国家的文字放到Unicode里面都是占2个字节。

4.3.整数类型

  

  C语言编译好的程序为什么不能移植,如把.exe文件放到Linux下是执行不了的,一个很大很大的原因在于C语言定义的变量在不同的操作系统上所占的大小是不一样的,声明一个int类型的变量,在Windows下面占32位,但放到Linux下面就有可能只占16位,那么这时候很可能表示的大小就不一样了,在Windows下声明一个很大的数,在Linux下面很可能就会溢出。因此这就是C语言为什么在编译完成之后不能移植的原因。

4.4.浮点类型

  

4.5.基本数据类型的转换

  

类型转换测试

复制代码
 1 public class TestConvert {  2     public static void main(String arg[]) {  3         int i1 = 123;  4         int i2 = 456;  5         double d1 = (i1+i2)*1.2;//系统将转换为double型运算
 6         float f1 = (float)((i1+i2)*1.2);//需要加强制转换符
 7         byte b1 = 67;  8         byte b2 = 89;  9         byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需要强制转换符
10         System.out.println(b3); 11         double d2 = 1e200; 12         float f2 = (float)d2;//会产生溢出
13         System.out.println(f2); 14         float f3 = 1.23f;//必须加f
15         long l1 = 123; 16         long l2 = 30000000000L;//必须加l
17         float f = l1+l2+f3;//系统将转换为float型计算
18         long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
19  } 20 }
复制代码

五.运算符

  

5.1.算术运算符(自加和自减运算符)

  

 5.2.逻辑运算符

  

5.3.赋值运算符

  

5.4.字符串连接符

  

5.5.表达式

  

5.6.三目运算符

  

一、语句

  

1.1. 条件语句

  1.1.1 if语句

  

  1.1.2 分支语句(switch语句)

  

  

      

1.2. 循环语句

  1.2.1 for循环语句

  Java基础学习总结(20)——基础语法

  学会画内存分析图分析别人写的程序,这样就很容易分析出规律,分析出规律也就明白了别人的算法,也就很容易读懂别人的程序。

在内存中分析result=1!+2!……+10!的算法

  

  分析到i等于3以后,基本上已经得到规律了,这个程序要计算的就是:result = 1!+2!+3!……+10!。

  由此可以看出,懂得画内存去分析程序对读懂别人的程序是大有裨益的。以后读别人的程序的时候,觉得难读懂的时候就画内存分析。

  学习别人的算法的最好的途径是分析别人写的程序,分析的过程结合内存分析是最好的做法。

1.2.2 while循环和do while循环

  

1.2.3 break和continue语句

  

二、方法

  

  方法执行到return语句后,这个方法的执行就结束了,方法可以有返回值,但可以不用这个返回值。方法首先要定义,然后才能调用。

复制代码
 1 public class TestMethod{  2     public static void main(String args[]){  3  m();  4         m1(3);  5         m2(2,3);  6         int i = m3(4,5);  7  System.out.println(i);  8  }  9     //以下定义的都是静态方法,静态方法可以在main()方法里面直接调用
10     public static void m(){ 11             System.out.println("Hello!"); 12             System.out.println("孤傲苍狼"); 13  } 14         
15     public static void m1(int i){ 16             if(i==5){ 17                     return; 18  } 19  System.out.println(i); 20  } 21         
22     public static void m2(int i,int j){ 23             System.out.println(i+j); 24  } 25         
26     public static int m3(int i,int j){ 27             return i+j; 28  } 29 }
复制代码

三、变量的作用域

  变量的作用域只在“{  }”有效,出了这个“{  }”就没有作用了

四、递归调用

  递归:在一个方法内部对自身的调用就称为递归

  

 

  整个方法执行在内存中执行的过程如下图所示:

  

范例:使用递归计算第5个斐波那契数列数

复制代码
 1 /*计算第5个斐波那契数列数*/
 2 /*
 3 斐波那契数列特点:f(1)=1,f(2)=1,f(3)=f(1)+f(2),f(4)=(f2)+(f3)……依次类推。  4 即后一个数都是等于前两个数的和,这样的数列就是斐波那契数列。  5 */
 6 /*
 7 使用递归调用的方法计算  8 */
 9 public class Fab{ 10     public static void main(String args[]){ 11         System.out.println(f(5)); 12  } 13     
14     public static int f(int n){ 15             if(n==1||n==2){ 16                     return 1; 17                 }else{ 18                         return f(n-1)+f(n-2); 19  } 20  } 21 }
复制代码

  整个在内存中执行过程如下图所示

  

五、程序的执行过程

  Java基础学习总结(20)——基础语法

转载于:https://my.oschina.net/zhanghaiyang/blog/595838

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106766.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Slog53_Unity3D之功能脚本_FindOtherGameObjects_找到场景内除自己外的其他GameObject

    Slog53_Unity3D之功能脚本_FindOtherGameObjects_找到场景内除自己外的其他GameObject

    2021年6月12日
    106
  • itextpdf生成表格的常见用法

    itextpdf生成表格的常见用法随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)、博主微信(guyun297890152)、QQ技术交流群(183198395)。在前面的文章介绍了itextpdf基本用法和使用itextpdf生成图片,itextpdf还可以实现很多功能,非常强大,今天主要介绍如何使用itextpdf生成表格式的pdf,在实际项目中也非常常用,首先举一个非常…

    2022年6月14日
    36
  • L2正则化的作用(l1正则化特点)

    0正则化的作用正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归。但是使用正则化来防止过拟合的原理是什么?L1和L…

    2022年4月11日
    89
  • WireShark抓包后数据分析

    WireShark抓包后数据分析在分析数据之前,我们先了解一下我们传输数据的结构体系,如下图:这是两种体系,我们常知的一般都是TCP/IP体系结构。TCP/IP体系架构分析不难发现,TCP/IP体系中包含着很多我们熟悉的协议,比如说:http、smtp、https等。而我们人(使用者)是站在应用层之上的,我们想把数据上传或者说发送给别人,就要通过一些应用,如:QQ、微信、百度网盘等。然后就经过一层层加密(在数据包前加个“头”),一层层的传递。Frame层(物理层)分析这是我自己抓包的一个例子,我从我自己的QQ发了一条消息给朋友,

    2025年9月6日
    8
  • 华为服务器pxe装系统,pxe启动服务器

    华为服务器pxe装系统,pxe启动服务器pxe启动服务器内容精选换一换根据给定的云服务器ID列表,批量启动云服务器,一次最多可以启动1000台。POST/v1/{project_id}/cloudservers/action参数说明请参见表1。参数说明参数是否必选描述project_id是项目ID。获取方法请参见获取项目ID。请参考响应(任务类)。启动云服务器请求参数中,必须以“os-start”字段下发用户在创建云服务器或为云服务…

    2022年6月30日
    84
  • pychram 激活码【最新永久激活】

    (pychram 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    60

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号