Java程序基础

Java程序基本结构

  1. 一个程序的基本单位是classclass是关键字

  2. 类名要求:

    • 类名必须以英文字母开头,后接字母,数字和下划线的组合

    • 习惯以大写字母开头

  3. public除了修饰类还可以修饰方法

  4. Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须为String数组。

  5. 方法名命名规则:

    • 首字母小写

  6. 每一行语句必须以分号结束。

  7. 注释:

    • 单行注释://

    • 多行注释:/**/

    • 多行注释:以/**开头,以**/结束,每行以星号开头

      /**

      *

      *

      */

变量

基本类型变量

  1. 变量先定义后使用。

  2. 变量默认值是0

  3. 变量不可重复定义,可重复赋值,可变量之间赋值。

    基本数据类型

    • 整数类型:

      byte(一个字节,-128~127),

      short(两个字节,-32768~32767),

      int(四个字节,-2147483648~2147483647),

      long(八个字节,-9223372036854775808~922337203685477580)

    • 浮点数类型:

      float(四个字节),需要加上f后缀

      double(八个字节)

    • 字符类型:char(两个字节)

    • 布尔类型:boolean(存储需要1bit,通常表示成四字节整数) 只有truefalse两个值。

    引用类型

    • string字符串:

    常量

    定义变量时加上final修饰符,变量就变成了常量。

    作用:用有意义的变量名避免魔术数字。

    常量名通常全部大写。

    var关键字

    作用:省略变量类型

    var sb = new StringBuilder();

    编译器会根据赋值语句自动推断出变量sb的类型是StringBuilder。对编译器来说,语句:

    var sb = new StringBuilder();

    实际上会自动变成:

    StringBuilder sb = new StringBuilder();

变量的作用范围

{ }作用域

整数运算

  1. 移位运算

    • 无符号右移运算:>>>

    • byte和short类型进行以为时,会首先转换为int再进行位移。

    • 左移*2,右移%2

  2. 运算优先级

    1. ()

    2. ! ~ ++ --

    3. * / %

    4. + -

    5. << >> >>>

    6. &

    7. |

    8. += -= *= /=

  3. 强制类型转换

    int i=12345;
    short s=(short)i;

    不能超出范围

  4. 类型提升

    short类型与int类型进行运算时得到的结果是int类型。

  5. 位运算

    • 按位与 &:有0为0,全1为1

    • 按位或 |:有1为1,全0为0

    • 按位非 ~:1~0,0~1

      浮点数运算

    1. Java浮点数遵循IEEE-754标准。

    2. 类型提升:如果参与运算的两个数其中一个是整型,那么整型可以自动提升到浮点型。

    3. 溢出:整数运算在除数为0时会报错,而浮点数运算在除数为0时,不会报错,但会返回几个特殊值:

      • NaN表示Not a Number

      • Infinity表示无穷大

      • -Infinity表示负无穷大

    4. 强制转型

      int i=(int)23.55;//i=23
      int i1=(int)-23.55;//i=-23

      四舍五入:对浮点数加0.5再进行强制类型转换。

    布尔运算

    1. 布尔运算是一种关系运算,包括以下几类:

      • 比较运算符:>>=<<===!=

      • 与运算 &&

      • 或运算 ||

      • 非运算 !

    2. 关系运算符的优先级从高到低依次是:

      • !

      • >>=<<=

      • ==!=

      • &&:有一个为false则结果为false

      • ||:有一个true则结果为true

    3. 短路运算:提前知道运算结果而不再运算。

    4. 三元运算符:b?x:y

      int a=3;
      int b=4;
      int x=a>b?0:1;

    字符

    1. 类型:char

    2. char s='\u0041';//'A'十六进制0041=十进制65

    字符串

    1. 类型:String 引用类型

    2. 表示:"......"

      String s="";//零个字符
      String s1="abc";//三个字符
      String s2="中文 hhh";
    3. 字符串需要表示"时,用\转义符

      String s="abac\"xxxx";
    4. 常见的转义字符包括:

      • \" 表示字符"

      • \' 表示字符'

      • \\ 表示字符\

      • \n 表示换行符

      • \r 表示回车符

      • \t 表示Tab

      • \u#### 表示一个Unicode编码的字符

    5. 字符串连接

      使用+连接

      String s1="hello";
      String s2="world";
      string ss=s1+s2+"!";
      System.out.println(ss);
    6. 多行字符串

      用"""..."""表示

      String s="""
      sdffrfe
      sdfwrwf
      sdfreg
      """;
      System.out.println(s);
    7. 不可变特性

      字符串内容不可变。

    8. 空值null:引用类型的变量可以指向一个空值null,它表示不存在,即该变量不指向任何对象。

      数组类型

      1. 定义数组类型的变量:使用数组类型int [],数组变量初始化需要使用new int[5],表示可容纳五个int类型元素的数组。

        int[] ns=new int[5];
      2. 特点:

        • 数组所有元素初始化为默认值,整型都是0,浮点型是0.0,布尔型是false

        • 数组一旦创建后,大小就不可改变。

      3. 修改数组中的元素:使用赋值语句

        ns[1]=98;
      4. 获取数组大小:数组变量.length

        int[] ns=new int[5];
        System.out.println(ns.lenght);
      5. 定义数组时初始化元素

        int[] ns=new int[5] {1,2,3,4,5};
        int[] ns1={1,2,3,4,5};
        System.out.println(ns.lenght);
        System.out.println(ns1.lenght);

      字符串数组

      1. 定义字符串数组:

        String[] ns={"aba","vdf","fdwf"};
      2. 字符串内容不会更改,仅指向更改

day2Java程序基础的更多相关文章

  1. ROS_Kinetic_12 ROS程序基础Eclipse_C++(三)usb camera

    ROS_Kinetic_12 ROS程序基础Eclipse_C++(三)usb camera 软件包下载地址:https://github.com/bosch-ros-pkg/usb_cam 下载后, ...

  2. ROS_Kinetic_11 ROS程序基础Eclipse_C++(二)

    ROS_Kinetic_11 ROS程序基础Eclipse_C++(二) 编写简单的Service和Client (C++): http://wiki.ros.org/cn/ROS/Tutorials ...

  3. ROS_Kinetic_10 ROS程序基础Eclipse_C++(一)

    ROS_Kinetic_10 ROS程序基础Eclipse_C++(一) 编写简单的消息发布器和订阅器 (C++) http://wiki.ros.org/cn/ROS/Tutorials/Writi ...

  4. Java并发程序设计(二)Java并行程序基础

    Java并行程序基础 一.线程的生命周期 其中blocked和waiting的区别: 作者:赵老师链接:https://www.zhihu.com/question/27654579/answer/1 ...

  5. 微信小程序基础

    前言 什么是微信小程序,它是一种轻量级的APP,它与常规App来说,无需下载安装即可使用,它嵌于微信App中,要使用微信小程序你只需要搜索一下微信小程序的名称就好,如近期的"Google的画 ...

  6. 小程序基础知识点讲解-WXML + WXSS + JS,生命周期

    小程序基础 小程序官方地址,小程序开发者工具,点击此处下载.在微信小程序中有一个配置文件project.config.json,此文件可以让开发者在不同设备中进行开发. 微信小程序共支持5种文件,wx ...

  7. 自学Linux Shell19.1-gawk程序基础特性

    点击返回 自学Linux命令行与Shell脚本之路 19.1-gawk程序基础特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. gawk概念 awk是一个强大的文本分析工具 ...

  8. JAVA并行程序基础

    JAVA并行程序基础 一.有关线程你必须知道的事 进程与线程 在等待面向线程设计的计算机结构中,进程是线程的容器.我们都知道,程序是对于指令.数据及其组织形式的描述,而进程是程序的实体. 线程是轻量级 ...

  9. Hadoop程序基础模板

    分布式编程相对复杂,而Hadoop本身蒙上大数据.云计算等各种面纱,让很多初学者望而却步.可事实上,Hadoop是一个很易用的分布式编程框架,经过良好封装屏蔽了很多分布式环境下的复杂问题,因此,对普通 ...

  10. 到头来还是逃不开Java - Java13程序基础

    java程序基础 没有特殊说明,我的所有学习笔记都是从廖老师那里摘抄过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要把Java捡起来. ...

随机推荐

  1. Mac怎么创建加密文件夹

    对于一些使用Mac工作生活有特殊要求以及职业要求有限制的用户来说,加密自己的工作内容以及隐私是非常重要的一件事情.往往用户需要加密的内容项目很多,这个时候我们就需要一个加密文件夹来包含这些内容.那么M ...

  2. Java基础——(综合练习)选手打分

    package com.zhao.test; import java.util.Scanner; public class Test17 { /* 需求 : 在唱歌比赛中,有6名评委给选手打分,分数范 ...

  3. List进行分隔,分批插入数据库

    背景,当数据集合超过一定数据量时,则会插入失败,需要将集合进行分隔,分批插入 /** * 分批插入-公共方法 * @param objects:数据集合 * @param subSize:单次插入的条 ...

  4. SpringBoot整合mqtt协议,实现订阅topic并将消息存储到mysql数据库

    所需依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...

  5. NX 二次开发,线性移动uf5943

    #include <uf.h> #include <uf_modl.h> #include <uf_part.h> #include <uf_modl_pri ...

  6. [2002年NOIP提高组] 均分纸牌

    有 N 堆纸牌,编号分别为 1,2,-, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动.移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上:在编 ...

  7. Docker学习——Kubernetes(八)

    在线阅读:GitBook 下载:pdf Kubernetes 是 Google 团队发起并维护的基于 Docker 的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心. 建于 Doc ...

  8. RabbitMQ消息堆积问题?

    原因: 有时可能因为消费者自身代码问题,导致没办法正常消费消息,那么就会导致消息队列中会堆积大量的消息: 或因为同一时间来了非常多的消息,消费者没办法及时消费,导致消息队列中堆积了大量消息. 解决办法 ...

  9. git拉取远程主支内容,在本地进行修改后,重新提交到新建分支的过程

    git拉取远程主支内容,在本地进行修改后,重新提交到新建分支的过程 在本地找一个干净的文件夹 git  init  进行初始化 git clone 复制拉取远程的地址 在文件夹中打开,进入复制下来的项 ...

  10. c++ vtdcm对于压缩模式文档图片的读取

    //获取dcm数据结构,一下图像数据仅针对单通道8字节数据 DcmFileFormat fileformat; OFCondition oc = fileformat.loadFile(dcmPath ...