注释

单行注释: //注释
多行注释: /*注释*/
文档注释: /** 文档注释 */

标识符与关键字

下图为Java中所有的关键字

所有标识符必须以大小写字母或$或_开头,首字母之后可以用数字

不能使用关键字做变量名或方法名

标识符大小写敏感

数据类型

Java是一种强类型语言:要求变量使用要严格符合规定,所有变量必须先定以后才能使用。

Java数据类型分为2大类

基本类型(primitive type):

1、整数类型: byte占1个字节

​ short占2个字节

​ int 占4个字节 (默认)

​ long占8个字节

2、浮点类型:float占4个字节

​ double占2个字节(默认)

3、字符类型:char占2个字节

4、boolean类型:占1位,true和false

引用类型(reference type)

1、类 class

2、接口 interface

3、数组 array

public class Demo01 {
public static void main(String[] args) {
//八大基本数据类型 定义的变量不赋值则无法使用
byte num1 =10;
short num2 = 20;
int num3 = 30;
long num4 = 40L; //长整型需要在value后面加L // 浮点数 float double
float num5 = 10.1F; //float 类型需要在value后加F
double num6 = 3.1415926; //字符类型
char name1 = 'A';
//字符串String不是数据类型也不是关键词而是类,必须用"包裹
String name2 = "Hellow World!"; boolean flag = true; System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
System.out.println(num5);
System.out.println(num6);
System.out.println(name1);
System.out.println(name2);
System.out.println(flag); }
}

类型转换

Java是抢类型语言,在进行运算时,不同类型的数据需要先转换为同一类型在进行运算。

容量从低到高优先级排序,因为浮点型优先级比整型高,所以float虽然容量小于long,但依然优先级高于long。

从 高 --> 低 需要强制类型转换

从 低 --> 高 自动类型转换

强制类型转换:

类型 变量名 = (目标类型名) 需要强制转换的变量名

public class Demo05 {
public static void main(String[] args) {
// 高 --> 低 :强制类型转换
int i = 128;
byte b = (byte)i; //这里输出结果不为128,因为byte最大值为127,此处内存溢出了,类型转换时需注意相应类型的最大容量,避免内存溢出。 System.out.println(i);
System.out.println(b); }
} //输出结果:
128
-128

自动类型转换:

public class Demo05 {
public static void main(String[] args) {
// 低 --> 高 :自动类型转换
int j = 128;
double c = j; System.out.println(j);
System.out.println(c);
}
} //输出结果:
128
128.0

Ps:

  • 不能对布尔值进行类型转换
  • 不能把对象类型转换为不相干的类型
  • 高容量 --> 低容量 强制类型转换
  • 转换时可能存在内存溢出或精度问题
public class Demo03 {
public static void main(String[] args) {
char c1 = 'a';
char c2 = '中'; System.out.println(c1);
System.out.println((int)c1); //强制类型转换
System.out.println(c2);
System.out.println((int)c2);
}
}

可以看到进行强制类型转换后输出的为字符对应的ascii值

a
97

20013

变量

Java是强类型语言,每个变量都必须声明其类型

变量是Java最基本的存储单元,其要素包含变量名、数据类型、作用域

ps:

  • 每个变量都有类型,类型可以是基本类型(整型、浮点型、字符型、布尔型)也可以是引用类型(类、接口、数组)
  • 变量名必须是合法标识符,也就是必须以大小写字母或$或_开头
  • 声明变量语句注意要以 分号 结束
type varName = [=value] [{,varName[=value]}];
数据类型 变量名 = 值; //可以使用逗号分隔来同时声明多个变量

变量的作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Demo06 {

    //类变量,声明格式类似于实例变量,不过需要加static, 随类的出现和消失而出现和消失。
static double salary = 2500; //实例变量,在类的里面方法的外面,从属于对象;如不自行初始化,Java会将其值初始化为这个类型的默认值。 0,0.0, 布尔:false, 其余数据类型:null
String name;
int age; //main方法
public static void main(String[] args) { //局部变量,在此方法里面,使用时必须声明和初始化值,不可在其他方法调用。
int i = 10;
System.out.println(i); //变量类型(Demo06) 变量名(demo06) = 值(new Demo06())
Demo06 demo06 = new Demo06(); System.out.println(demo06.age);
System.out.println(demo06.name);
System.out.println(salary);
} //其他方法
public void add(){ }
}

常量

  • 常量初始化后,常量值不可改变,可理解为特殊的变量
  • 常量名一般使用大写字符
final 常量名 = 常量值;final i = 10;
public class Demo07 {    //修饰符(static、final等)无先后顺序    static final int I = 10;    public static void main(String[] args) {        System.out.println(I);    }}

变量命名规范

修饰符

static 将方法变为类的方法,被修饰的方法可以在类里直接引用而不需要先创建对象。

public 公有的,如果想让子类也可以使用此属性或方法,需要用public修饰

protected 受保护的,同包不同级,不可以跨包使用

default 默认为default

private 私有的,私有的属性和方法是可以被继承的,但是仅限被类访问,子类一般无法直接调用及访问。一般属性也是私有的

final 通过final修饰得类没有子类

运算符

% 模 取余运算instanceof==实例注意a++与++a的区别,a++先赋值再+1,++a先+1再赋值
package operator;public class Demo2 {    public static void main(String[] args) {        long a = 123123123123123123L;        int b = 123;        short c = 10;        byte d = 8;        // 返回结果为操作数中最高位        System.out.println(a+b+c+d);        System.out.println(b+c+d);        System.out.println(c+d);    }}12312312312312326414118

当操作数中有long,则返回值类型为long;操作数中无long时,返回结果为操作数中最高位

自增自减运算符、Math类

Java.lang下的包不需要导入

package operator;public class Demo3 {    public static void main(String[] args) {        int a = 3;        //先赋值再+1        int b = a++;        //先+1再赋值        int c = ++a;        System.out.println(a);        System.out.println(b);        System.out.println(c);        //java.lang下的包不需要导入;         double pow = new Math.pow(2,3);        System.out.println(pow);    }}

Java包机制

包可以理解为一个文件夹

为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。

语法:

package pkg1[.pkg2[.pkg3...]];

一般利用公司域名倒置作为包名

例如:com.baidu.www

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。

import package1[.package2...].(classname|*);

import语句必须在package语句下面,不然会报错

IDEA默认开启了Compact Middle Packages,需要取消勾选才可一次性生成多级package

JavaSE-基础语法的更多相关文章

  1. JavaSE基础语法学习-异常

    异常 异常指程序运行中出现的不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等. 异常发生在程序运行期间,它影响了正常的程序执行流程. 比如说,你的代码少了一个分号,那么运行出来结果是提示是 ...

  2. JavaSE基础语法学习-方法&数组

    方法 Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某 ...

  3. JavaSE基础语法学习-流程控制

    流程控制 用户交互Scanner Scanner**对象** 下面是创建 Scanner 对象的基本语法: Scanner s = new Scanner(System.in); 接下来我们演示一个最 ...

  4. JavaSE基础语法学习

    标识符 表示类名的标识符用大写字母开始. 表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始. 注意 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($).或者下划线(_)开始 ...

  5. javase基础复习攻略《二》

    今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言 ...

  6. JavaSE入门学习7:Java基础语法之语句(下)

    继续接着Java基础语法来:JavaSE入门学习5:Java基础语法(一)和JavaSE入门学习6:Java基础语法(二). 语句 Java经常使用的3种循环:while.do...while,for ...

  7. JavaSE入门学习6:Java基础语法之运算符和语句(上)

    继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...

  8. 零基础学习JavaSE(二)——基础语法

    二.Java 基础语法 2.1 Java 基础语法 java是一个面向对象的程序语言,及可把一切事物当做对象处理,而java的事物中最小的就是class (类),类中有方法,类可以创建对象,并且有一些 ...

  9. Java匹马行天下之JavaSE核心技术——Java基础语法

    Java基础语法 一.   认识Java 1. Java 简介 java 是一种高级的面向对象的程序设计语言,使用Java语言编写的程序时跨平台的.从pc到手机,都有Java开发的程序和游戏,Java ...

  10. JavaSE基础(三)--Java基础语法

    Java 基础语法 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

随机推荐

  1. Linux:阿里云设置安全组开放对应端口过程

    手动添加后 保存就可以了.

  2. 《计算机组成与体系结构:性能设计》读后小记 12、CPU的结构和功能

    一.CPU组成 1.组成: ALU:算术逻辑单元,完成数据的实际计算或处理 控制器:控制数据的移入移出CPU 寄存器:由一组存储位置极小的内部存储器组成 CPU内部总线:在各寄存器和ALU之间传送数据 ...

  3. Shell 脚本之 MySQL 一键安装及基本配置(几分钟搞定)

    准备工作 MySQL 该版本下载地址: https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12- ...

  4. python使用笔记004-冒泡排序

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字母从Z到A)错误就把他们交换过来.走访元素 ...

  5. 一、Java预科学习

    1.1.什么是计算机 计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处理海量数据的现 ...

  6. Python基础之函数的闭包与装饰器的介绍

    1.闭包的概念: 如果在一个函数中,定义了另外一个函数,并且那个函数使用了外面函数的变量,并且外面那个函数返回了里面这个函数的引用,那么称为里面的这个函数为闭包. 2.话不多说,以demo示例: de ...

  7. 【剑指offer】28. 对称的二叉树

    剑指 Offer 28. 对称的二叉树 知识点:二叉树:递归 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的. 示例 输入:root = [1, ...

  8. Python 机器学习实战 —— 无监督学习(上)

    前言 在上篇<Python 机器学习实战 -- 监督学习>介绍了 支持向量机.k近邻.朴素贝叶斯分类 .决策树.决策树集成等多种模型,这篇文章将为大家介绍一下无监督学习的使用.无监督学习顾 ...

  9. 单点登录详解(token简述)(七)

    前言 为什么整理单点登录? 主要的原因还是自己以前学习的时候曾经用过,但是时间太久,忘记了里面用到了哪些技术.及如何实现的,每次想到单点登录总是感觉即会又不会,这次整理session时,又涉及到了单点 ...

  10. Python自动化测试面试题-用例设计篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...