一. 语法结构
12345public class Demo{ public static void main(String[] args) { System.out.println("你好,java"); }}
说明:
Demo :表示一个类,类名为 Demo,与文件名相同
public: 表示一个公有的类
public static void main:表示一个主方法,即程序的入口(固定写法)
System.out.println("你好,java"); : 表示输出到屏幕,“;”表示语句结束
Java 语言严格区分大小写;
每个语句都必须以 “ ;” 结束;
括号都是成对出现的;
一个源文件只能有 一个 public类,其他类的数量不限;
每一个类在编译完成后,都会生成一个 “ .class ” 文件
如果原文件包含 public 类,则文件名必须与 类名相同;
二. 常用的转义字符
字符
说明
案例
运行结果
\t
制表符
System.out.println(“北京\t 天 ...
一、判断1. if……else if …… else语法if(条件表达式){ 执行代码块;} else if (条件表达式) { 执行代码块;} else { 执行代码块;}
123456789101112131415161718192021// 引入 scannerimport java.util.Scanner;public class demo01{ public static void main(String[] args) { // 创建 scanner 对象 Scanner myScanner = new Scanner(System.in); System.out.println("请输入年龄"); int age = myScanner.nextInt(); if ( age >= 18 && age < 60){ System.out.println("他成年了"); }else if ( age >= 60) { S ...
一、数组 [ ]
数组:可以存放多个同一类型的数据数组的下标从 0 开始
1. 动态初始化 - 确定元素数量方式 11234数组类型 数组名[] = new 数组类型[大小]// 创建一个数组,数组名为 a ,可以存放 5 个 int 类型的元素int a[] = new int[5];
方式 212345数组类型 数组名[]; 或 数组类型[] 数组名;数组名 = new 数据类型[大小];int a[];a = new int[5];
2.静态初始化 - 不确定元素数量123数据类型 数组名[] = {元素,元素,元素...}int a[] = {2,5,7,8,99,2,4,5,};
数组是多个相同类型的数据组合,不同类型的数据不能放到同一数组中
数组创建后,如果没有赋值,则默认值为 byte、short、int、long 为 0,float、double 为 0.0,char 为\u0000, boolean 为 false, String 为 null
数组的下标从 0 开始
不同类型存放时需要遵循 数据自动类型转换 规则
3. ...
一、类1. 属性
类的属性一般是基本数据类型,也可以是引用数据类型
属性的定义语法和变量的定语语法相同;
访问修饰符 属性类型 属性名;
属性如果不赋值,则默认值与数组一致;
1234class Cat{ String name; int age;}
2. 创建对象12345678class Cat{ String name; int age;}// 先声明再创建Cat cat;cat = new Cat();
1234567class Cat{ String name; int age;}// 直接创建Cat cat = new Cat();
二、方法1.成员方法123访问修饰符 返回数据类型 方法名(形参列表){ 方法体;}
访问修饰符: 控制方法的使用范围,不写则默认
四种: public(公共的)、protected(受保护的)、default(默认)、private(私有的)
返回数据类型 : 可以返回任意类型;
如果有多个返回值时,可以 ...
一、包
包的本质就是不同的文件夹
区分相同名字的类
控制访问范围
1package com.hspedu;
说明:
package: 关键字,表示打包
com.hspedu : 表示表名
命名规则:
只能包含字母、数字、下划线、小圆点
不能以数字开头
不能是关键字和保留字
一般是小写字母+小圆点
com.公司名.项目名.业务模块名
如:com.sina.crm.user
常用的包:
java.lang
基本包,默认引入,不需要再次引入
java.util
系统提供的工具包,工具类,如:Scanner
java.net
网络包,网络开发
java.awt
做 java 的界面开发,GUI
123import java.util.Scanner; // 引入 Scanner 类import java.util.* // 引入 util 下所有的类
注意事项:
package 的作用是声明当前类所在的包,需要写在类的最上边,一个类中最多只能写一个 package
import 指令放在 package 的下面,在类定义的前面,可以有多句且没有顺序 ...
一、类变量和类方法1. 类变量
类变量(静态变量/静态属性):是该类所有对象共享的变量,该类所有的对象都可以对齐进行修改或引用。
语法:static : 表示静态
123访问修饰符 static 数据类型 变量名;(推荐该写法)static 访问修饰符 数据类型 变量名;
引用语法:
123类名.类变量名;(推荐使用)对象名.类变量名;
类变量是随着类的加载而创建的,即使没有创建对象,也可以访问;
类变量的访问,也要遵守访问修饰符的访问权限;
没有加 static 则表示为实例变量,不共享,加上则表示为 类变量,是共享的;
类变量的生命周期时随着类的加载而加载,随着类的消亡而消亡;
2.类方法
类方法,也叫静态方法;
语法:
1访问修饰符 static 返回数据类型 方法名(){};(推荐写法)
调用:
1类名.类方法名();
静态方法既可以通过类调用,也可以通过类调用;
非静态方法不能通过类调用,只能通过对象调用;
类方法中不允许使用和对象有关的关键字
如: this,super
静态方法中,只能访问静态变量或静态方法
普通成员方法 都可以访问;
...
一、枚举
枚举属于一种特殊的类,里面只包含一组有限的特定的对象。
1.自定义枚举
不需要提供 setxxx 方法,防止属性被修改;
对枚举对象或属性使用 final 和 static 共同修饰,实现底层优化
(public final static 返回值类型 对象名);
枚举对象名通常全部大写;
枚举对象根据需要,可以有多个属性
构造器私有化;
123456789101112131415161718192021222324252627282930// 自定义枚举public class Enumeration01 { public static void main(String[] args) { System.out.println(Season.AUTUMN); }}class Season{ private String name; private String desc; public final static Season SPRING = new Season(&quo ...
一、常用类1. 包装类
包装类: 针对八种基本数据类型定义相应的引用类型;
基本数据类型
包装类
父类
boolean
Boolean
Object
char
Character
byte
Byte
Number
short
Short
int
Integer
long
Long
float
Float
double
Double
包装类与基本数据类型的转换
jdk5 以前为手动装箱、拆箱,jdk5 以后为自动装箱、拆箱(底层调用的是 ValueOf 和 IntValue)
其他包装类 的用法类似。
12345678910111213141516171819202122232425// 拆箱、装箱public class Warpper01 { public static void main(String[] args) { // jdk 5 以前为手动装箱、拆箱 // 装箱 int n1 = 100; Integer integer = ...
一、集合
单列集合:其中的元素都是单个的;
Collection 接口有两个重要的子接口 List、Set,他们实现子类都是单列集合
双列集合:其中的元素是以键值对的形式出现的;
Map 接口实现的子类 是双列集合
1. Collection 接口
Collection 接口实现类的特点:
Collection 实现子类可以存放多个元素,每个元素可以是 object;
有些实现类可以存放重复的元素,有些不可以;
有些实现类是有序的(List),有些是无序的(Set);
Collection 接口没收直接实现子类,它是通过子接口 List 和 set 来实现的;
Collection 接口常用方法
add
添加单个元素
remove
删除指定元素
contains
查找元素是否存在
size
获取元素个数
isEmpty
判断是否为空
clear
清空
addAll
添加多个元素
contains
查找多个元素是否都存在
removeAll
删除多个元素
123456789101112131415161718192021 ...
一、线程
线程是由进程创建的,线程就是进程的实体
线程可以分为单线程 和 多线程
单线程: 同一时刻,只允许执行一个线程;
多线程: 同一时刻,可以执行多个线程; - 并发: 同一时刻,多个任务交替执行,单核 CPU 实现多任务并发; - 并行: 同一时刻,多个任务同时执行,多核 CPU 可以实现并行; - 并行 与 并发 也可能同时存在
1. 线程使用创建线程的两种方法:
继承 Thread 类,重写 run 方法;
实现 Runnable 接口,重写 run 方法;
继承 Thread 类,创建线程:
主线程结束后,子线程任然在执行时,进程不会结束;
调用 run() 方法并不会启动线程,而且会造成主线程阻塞
调用 start() 方法可以启动线程,不会造成线程阻塞,主线程和子线程会同时执行
1234567891011121314151617181920212223// 继承 Thread 类 - 案例public class Thread01{ public static void main(String[] args) { ...















