注释

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

标识符与关键字

下图为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

最新文章

  1. grep
  2. CGLib动态代理原理及实现
  3. HighCharts中Y轴颜色设置
  4. xml入门
  5. Android 自定义带刻度的seekbar
  6. HDU 1029 Ignatius and the Princess IV DP
  7. linux shell date格式化配置
  8. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-011-注入AspectJ Aspect
  9. abstract修饰符,具体类与抽象类的区别
  10. phpmyadmin导入大量数据比较快的做法
  11. 04-OC属性的使用、自动释放池、封装和继承
  12. 调查问卷Html5发展综述
  13. 【Uva10559】Blocks(区间DP)
  14. 没有dev-server.js文件,如何进行后台数据模拟?
  15. elementui左侧菜单栏刷新后还是原来的状态
  16. 单机器搭建 zk 集群
  17. C# 之抽象类和抽象方法
  18. 关于 Data URI Scheme -- data:image/jpg;base64
  19. spring自带的定时任务功能@EnableScheduling
  20. input实时监听

热门文章

  1. 24 shell 管道命令与过滤器
  2. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 方阵旋转(代码填空)
  3. NSURLSession的简单使用
  4. Maven | 把jar包安装到本地仓库
  5. java基础---java8 新特性
  6. ArchLinux安装步骤(一)
  7. 动态路由协议、RIP
  8. 【LeetCode】523. 连续的子数组和
  9. 【剑指offer】42.和为S的两个数字
  10. 斐波那契数列——Python实现