一.标识符

  

二.关键字

  

三.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循环语句

  

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

在内存中分析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)——基础语法的更多相关文章

  1. Java最新学习线路(基础,源码,项目,实战)

    如需获取以下学习资源请关注公众号:Java编程指南 我们为自学者编程的或初学java的小伙伴们准备了一整套完整的学习资源和文章,还有我自己在自学路上的一些总结和学习线路,希望能帮到小伙伴们,如果有什么 ...

  2. Java基础学习笔记(一) - 基础语法

    1.Java程序开发过程 编译: 是指将我们编写的Java源文件翻译成JVM认识的class文件,javac编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功. 运行: ...

  3. <java基础学习>02JAVA的基础组成

    Java的基础组成 1 关键字 (被赋予了特殊含义的单词) 2 标识符 3 注释 4 常量和变量 5 运算符 6 语句 7 函数 8 数组 关键字 class Demo{ public static ...

  4. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  5. JAVA多线程基础学习一:基础知识

    我们知道多线程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 一.线程基本概念 1 线程:进程中负责程序执行的执行单元(执行 ...

  6. java安全学习-环境准备/基础知识

    补java的坑,开始! 1.Intellij一些快捷键 intell常用快捷键: ctrl+n 快速查找定位类的位置 ctrl+q 快速查看某个类的文档信息 shift + F6 快速类.变量重命名 ...

  7. Java开发学习(三)----Bean基础配置及其作用范围

    一.bean基础配置 对于bean的基础配置如下 <bean id="" class=""/> 其中,bean标签的功能.使用方式以及id和clas ...

  8. java基础学习05(面向对象基础02)

    面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...

  9. java基础学习05(面向对象基础01--类实例分析)

    面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...

  10. 吴裕雄--天生自然 JAVA开发学习:Applet 基础

    import java.applet.*; import java.awt.*; public class HelloWorldApplet extends Applet { public void ...

随机推荐

  1. 向Vue实例混入plusready

    (function () { var onPlusReady = function (callback, context = this) { if (window.plus) { callback.c ...

  2. FCC编程题之中级算法篇(中)

    介绍 接着上次的中级算法题 目录 1. Missing letters 2. Boo who 3. Sorted Union 4. Convert HTML Entities 5. Spinal Ta ...

  3. 创建私有CA, 加密解密基础, PKI, SSL

    发现了一篇图文并茂的超棒的  加密解密, CA, PKI, SSL 的基础文章, 链接如下:https://blog.csdn.net/lifetragedy/article/details/5223 ...

  4. NOIp2018模拟赛四十一

    现在是下午15:36,我已经改完题了...刷新纪录 A题叫B,B题叫A是什么操作??? 我离200只差一个SBFA.jpg 成绩:0+100+10=110 被虐啦...今天九个阿克的Orz.A题是个神 ...

  5. 【BZOJ 1503】[NOI2004]郁闷的出纳员

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 因为所有人工资同时递减. 所以可以设置一个变化值delta. 然后每个人的初始值为k 则把k-delta加入伸展树中. 会发现del ...

  6. C++primer书店程序

    #include <iostream> #include <string> #include <cassert> #include <algorithm> ...

  7. 6.5.2 C# 中的函数组合

    6.5.2 C# 中的函数组合 C# 中的函数组合是可能的.但使用非常有限,这是部分是由于在 C# 中散应用不能非常easy使用.但更重要的是,由于大多数操作是用成员来写的.而不是函数.但我们至少能够 ...

  8. 从头认识Spring-1.16 SpEl对集合的操作(1)-建立集合以及訪问集合的元素,以&lt;util:list/&gt;为例

    这一章节我们来讨论一下怎样建立集合以及訪问集合的元素? 1.建立集合? (1)domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch ...

  9. hdoj--3183--A Magic Lamp(贪心)

    A Magic Lamp Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  10. 关键字super

    1.super,相较于关键字this,可以修饰属性.方法.构造器 2.super修饰属性.方法:在子类的方法.构造器中,通过super.属性或者super.方法的形式,显式的调用父类的指定 属性或方法 ...