• 一个简单的Java应用程序

    • public class FirstSample {
      public static void main(String[] args) {
      System.out.println("We will not use 'Hello,World!'");
      }
      }
    • 访问修饰符 public ,用于控制程序的其他部分对这段代码的访问级别。
    • 类名以大写字母开头,每个单词的第一个首字母都应该大写,称为骆驼命名法。
    • Java虚拟机总是从指定类中的main方法的代码块开始执行,因此,类的源文件中必须包含一个main方法。
    • 使用System.out对象并调用了它的println方法。点号(.)用于调用方法。
    • System.out还有一个print方法,它不在输出之后增加换行符。
  • 注释
    • 最常用的方式是使用 //,其注释内容从 // 开始到本行结尾。
    • 多行注释,/* ... */
    • 自动生成文档,/** 开始,*/ 结束
  • 数据类型

    • Java是一种强类型语言,必须为每一个变量声明一种类型。

      • 共有8种基本类型,其中4种整型,2种浮点类型,1种字符类型 char 和 1种用于表示真值的boolean类型。

      • Java有一个能表示任意精度的算数包,称为“大数”。它并不是一种基本Java类型,而是一个Java对象。

    • 整型(用于表示没有小数部分的数值,允许是负数)

      • int 类型,long 类型,short 类型,byte 类型

      • 最常用 int类型,数字较大用long类型:长整型数值有一个后缀L或l

      • byte 和 short 类型主要用于特定的应用场合,例如,底层的文件处理或者存储空间很宝贵时的大数组。

      • 在Java中,整型的范围与运行Java代码的机器无关。这就解决软件从一个平台移植得到另一个平台所带来的诸多问题。

    • 浮点类型(用于表示有小数部分的数值)

      • float 类型和 double 类型

      • float 类型的数值有一个后缀 F 或 f (例如,3.14F)。实际上,只有很少的情况适合使用 float 类型,例如,需要单精度数的库,或者需要存储大量数据时。

      • double 双精度数值 

      • 用于表示溢出和出错情况的三个特殊的浮点数值:正无穷大、负无穷大、NaN(不是一个数字)。

        • 例如,一个正整数除以0的结果为正无穷大。计算0/0或者负数的平方根结果为NaN。

        • 判断是否为非数值,使用Double.isNaN方法。如下:

          if(Double.isNaN(x))
    • char 类型(用于表示单个字符)  
      • 如今,用于表示Unicode编码的代码单元。字面量值要用单引号括起来。例如:‘A’ 是编码值为65的字符常量。
      • 强烈建议不要在程序中使用 char 类型。
    • boolean 类型
      • 有两个值:false 和 true ,用来判定逻辑条件。整型值和布尔值之间不能进行相互转换
  • 变量与常量
    • 与所有程序设计语言一样,Java也使用变量来存储值。常量就是值不变的变量
    • 声明变量(不能使用Java保留字作为变量名)
      • int a;   //变量的类型 变量名
    • 变量初始化

      • 声明变量之后,必须用赋值语句对变量进行显示初始化。不能使用未初始化的变量的值。

      • int a=12;
    • 从Java10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就不需要声明类型。

      • var a=12;                //只需要使用关键字var
        var b="Hello"; //而无须指定类型
    • 常量(关键字 final 指示常量)

      • final double CM_INCH=2.51;    //关键字final表示这个变量只能被赋值一次。被赋值之后,就不能再更改了。习惯上,常量名使用全大写。
      • Java中,经常希望某个常量可以在一个类的多个方法中使用,将这些常量称为类常量。

        • public static final double CM_INCH=2.51;  //关键字 static final 设置一个类常量    
    • 枚举类型(变量的取值在一个有限的集合内)

      • enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE};   //自定义枚举类型
        Size s=Size.MEDIUM; //Size类型的变量只能存储这个类型声明中给定的某个枚举值。或者特殊值null,表示这个变量没有设置任何值。
  • 运算符

    • 算术运算符(+、-、*、/)

      • 当参与 / 运算的两个操作数都是整数时,表示整数除法;否则表示浮点除法。整数的求余操作(有时称为取模)用%表示。

        • 例如,15/2等于7,15%2等于1,15.0/2等于7.5

      • 注意:整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。

    • 数学函数与常量

      • Math类中,计算一个数值的平方根,使用sqrt方法

        • double a=3;
          double b=Math.sqrt(a);
          System.out.println(b);
      • 幂运算,Math类的pow方法

        • double c=Math.pow(a, b);
      • Math类提供了一些常用的三角函数

        • Math.sin     Math.cos      Math.tan    Math.atan       Math.atan2

      • 指数函数以及它的反函数——自然对数以及以10为底的对数

        • Math.exp      Math.log     Math.log10

      • Java还提供了两个用于表示 π 和 e 常量的最接近的近似值              

        • Math.PI       Math.E  
      • 不必在数学方法名和常量名前添加前缀“Math”,只要在源文件的顶部加上下面这些代码就行了

        • import static java.lang.Math.*;
          System.out.println(E);
    • 数值类型之间的转换

      • 上图数值类型之间的合法转换中,有个黑色箭头,表示无信息丢失的转换;另外3个红色箭头,表示可能有精度损失的转换。

      • 当用一个二元运算符连接两个值时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一种类型。

        • 如果两个操作数中有一个是double / float / long 类型,另一个操作数将会转换为 double / float / long 类型。

        • 否则,两个操作数都将转换为 int 类型

    • 强制类型转换

      • double x=9.997;
        int nx=(int)x; //double类型强制转换为int类型
        int nx=(int) Math.round(x); //long类型强制转换为int类型 Math.round()四舍五入,返回结果为long类型
    • 结合赋值和运算符

      • x += 4;  等价于  x = x + 4;    (运算符放在 = 号左边,如 *= 或 %=)

      • 如果运算符两边操作数类型不同,就会强制类型转换。例如,int x;  x += 3.5;   是合法语句,将会把x设置为 (int)(x+3.5)

    • 自增与自减运算符

      • n++ 或 n--   将变量n的当前值加1或减1

      • ++n 或 --n   表达式中,会先完成加1                --建议不要在表达式中使用  

    • 关系和boolean运算符

      • 相等  3 == 7 值为false        不相等  3 != 7 值为true

      • && 逻辑“与”运算符         || 逻辑“或”运算符         按照“短路”方法求值,如果第一个操作数能够确定了表达式的值,第二个操作数就不必计算了

      • 三元操作符

        • 表达式?true 时执行的语句:false 时执行的语句;

    • 位运算符

      • & 和 | 运算符不采用“短路”方式来求值,得到计算结果之前两个操作数都需要计算。

    • 括号与运算符级别

      • 因  += 是右结合运算符,a += b += c  等价于  a += (b +=c)    也就是将 b += c 的结果(加上 c 之后的 b )加到 a                      

  

  ——引用书籍《Java 核心技术 卷I》基础知识(原书第11版)

                                 

        

    

    

    

                

JAVA的基本程序设计结构<上>的更多相关文章

  1. Java核心技术卷一基础知识-第3章-Java的基本程序设计结构-读书笔记

    第3章 Java的基本程序设计结构 本章内容: 一个简单的Java应用程序 字符串 注释 输入输出 数据类型 控制流 变量 大数值 运算符 数组 本章主要讲述程序设计相关的基本概念(如数据类型.分支以 ...

  2. 201771010142 张燕 Java的基本程序设计结构第二周学习总结

    第三章 Java的基本程序设计结构 第一部分 理论知识学习部分 一 基本知识: 1.标识符:由字母.下划线,美元符号和数字组成,第一个符号不能为数字,可以用作类名.变量名.方法名.数组名和文件名等. ...

  3. 1-03 Java的基本程序设计结构

    1-03 Java的基本程序设计结构 3.1 & 3.2 在一个单词中间使用大写字母的方式称为骆驼命名法.以其自身为例,应该写成CamelCase). 与C/C++一样,关键字void表示这个 ...

  4. Java核心技术卷阅读随笔--第3章【Java 的基本程序设计结构】

    Java 的基本程序设计结构 现在, 假定已经成功地安装了 JDK,并且能够运行第 2 章中给出的示例程序.我们从现在开始将介绍 Java 应用程序设计.本章主要介绍程序设计的基本概念(如数据类型.分 ...

  5. Java的基本程序设计结构(上)

    在Java中,每一个变量属于一种类型(type).在声明变量时,变量所属的类型位于变量名之前. 例如: double salary; int vacationDays; long earthPopul ...

  6. 重新学习Java——Java基本的程序设计结构(二)

    上一节简单回顾了Java基本的一些程序设计的知识,这一节将继续根据<Java核心技术>这本书,进行这方面知识的复习与探索. 1. 字符串 Java字符串实际上就是Unicode字符序列.例 ...

  7. JAVA的基本程序设计结构(下)

    字符串 Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,叫做 String. String e=""; //an empty String String ...

  8. Java核心技术-Java的基本程序设计结构

    1.一个简单的Java应用程序 public class FirstSample { public static void main(String[] args) { System.out.pring ...

  9. 重新学习Java——Java基本的程序设计结构(一)

    最近在实验室看到各位学长忙于找工作的面试与笔试,深感自己的不足,决定重新好好学习一下<Java核心技术>这本书,曾经靠这本书走入Java的世界,但是也有很多的地方被我疏漏过去了,因此也是作 ...

随机推荐

  1. 01 flask源码剖析之werkzurg 了解wsgi

    01 werkzurg了解wsgi 目录 01 werkzurg了解wsgi 1. wsgi 2. flask之werkzurg源码流程 3. 总结 1. wsgi django和flask内部都没有 ...

  2. Flask 基础组件(八):message

    message是一个基于Session实现的用于保存数据的集合,其特点是:使用一次就删除. from flask import Flask, flash, redirect, render_templ ...

  3. 收集TCP端口的访问延迟和丢包率

    需求: 找一款工具可以对TCP 80端口 收集 访问延迟和丢包率 找到的工具: 1.Hping :  http://www.hping.org/ 2.paping : https://docs.azu ...

  4. vue 集成html5 plus

    首先要安装一个包 vue-html5plus npm i vue-html5plus -S 然后配置这个文件 在main.js添加一串代码 var onPlusReady = function (ca ...

  5. Centos7之LNMP环境编译安装

    Centos7之LNMP环境编译安装 一.系统环境准备 注:安装时间过长,只做参考!!!1.系统信息 [root@localhost ~]# uname -r 3.10.0-957.el7.x86_6 ...

  6. freeMarker随手笔记

    freemarker官网:http://docs.freemarker.cn/ 注意: 1.如果标签没有嵌套内容(在开始标签和结束标签之间的内容),那么可以只使用开始标签 (详情:http://fre ...

  7. JMeter-一个接口的返回值作为输入传给其他接口

    背景: 在用JMeter写接口case,遇到一种情况,接口1查看列表接口,接口2查看详情接口,接口2需要传入接口1列表的第一条数据的id 解决方案: 首先放一下总体截图 具体步骤 1-新建一个Thre ...

  8. 波士顿动力狗 SPOT 权威购买指北

    两周前 油管科技视频播主 Lew Later 发布了一支 波士顿动力狗子的开箱视频,短短两周的时间内这支视频的播放量就达到了367万, 在Lew Later 近期发布的视频中,这支视频的播放量绝对算得 ...

  9. 搞定 CompletableFuture,并发异步编程和编写串行程序还有什么区别?你们要的多图长文

    你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...

  10. [jvm] -- 垃圾收集算法篇

    垃圾收集算法 标记-清除算法 首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象. 缺点: 效率问题: 空间问题(标记清除后会产生大量不连续的碎片) 复制算法 它可以将内存分为大小相同 ...