Java 基本使用
2021-10-28 15:06:56 0 举报
AI智能生成
Java知识脉络,持续更新
作者其他创作
大纲/内容
引入
资料
Java面试手册
Java程序设计教程
Java从入门到项目实战
Java菜鸟教程
基本介绍
IDE
全平台唯一指定JetBrains Idea
项目结构
project
empty project
module
package
com.company.packagename
class
基本结构
HelloWord.java
public class HelloWorld {
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
注释
//
/* */
导入Jar包
在Module下面
新建文件夹libs
复制粘贴jar包在文件夹下面
右键目录Add as library
不先复制jar包过去的话没有这个选项
Helloworld
参考资料
初次在Eclipse完成第一个 HelloWorld 程序
Idea Helloworld
参考资料
Intellij IDEA运行Hello World
图解使用IDEA创建第一个Java程序HelloWorld
基本数据类型
整数型
byte
short
int
long
浮点型
float
double
字符型
char
'a'+'b'是一个整数,不是字符串
相当于无符号版本的short(数值范围大小一致)
布尔型
boolean
数据类型转换
参考资料
JAVA数据类型转换
基本数据类型转换
参考资料
java中的基本数据类型的转换
基本概念
隐式/自动类型转换
(Implicit/Widening Conversions)
(Implicit/Widening Conversions)
从存储范围小的类型到存储范围大的类型.
由系统自动完成
显示/强制类型转换
(Explicit/Narrowing Conversions)
(Explicit/Narrowing Conversions)
从存储范围大的类型到存储范围小的类型
由于此时可能会丢失精度,因此需要人为进行转换
转换方式
Casting
在圆括号里面填上数据类型
int i = 1025
byte b = (byte) i
byte b = (byte) i
double变float
带小数点的变量默认为double
float f = 1.3f
在数据后声明f
包装类
格式
Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)
解释
简单类型的变量转换为相应的包装类,可以利用包装类的构造函数
在各个包装类中,总有形为×× Value()的方法,来得到其对应的简单类型数据
举例
double d1=100.00;
Double D1=new Double(d1);
int i1=D1.intValue();
Double D1=new Double(d1);
int i1=D1.intValue();
字符串与基本数据类型转换
字符串转基本数据类型
String s = "1";
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
byte b = Byte.parseByte( s );
short t = Short.parseShort( s );
int i = Integer.parseInt( s );
long l = Long.parseLong( s );
Float f = Float.parseFloat( s );
Double d = Double.parseDouble( s );
基本数据类型转字符串
相应类的串转换方法
X.toString()
自动转换
X+""
使用String的方法
String.valueOf(X)
运算类型转换
-4 + 1/2 + 2*-3 + 5.0
double类型,结果是-5.0
但是1/2在这个语境下等于0
运算符
算术运算符
+
++
-
--
*
/
%
99/100 == 0
赋值运算符
=
+=
-=
*=
/=
%=
关系运算符
(Relational Operators)
(Relational Operators)
>
>=
<
<=
==
!=
逻辑运算符
(Boolean Operators)
(Boolean Operators)
&&
||
非 !
三目运算符
?:
位运算符
按位取反(~)
按位与(&)
按位或(|)
异或(^)
右移(>>)
左移(<<)
无符号右移(>>>)
基本语句
分支语句
if () {} else {}
switch () {
case case1:
default:
}
case case1:
default:
}
case不能相同
循环语句
while(){}
for (;;){}
for(声明语句 : 表达式){}
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
异常语句
try{} catch(Exception ex) finally{}
throw throws
ChildTopic
控制语句
continue
break
类、方法、变量
修饰符与声明
修饰符与声明
参考资料
Java中各种(类、方法、属性)访问修饰符与修饰符的说明
类修饰符
基本格式
访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称
访问修饰符与修饰符的位置可以互换
访问修饰符
解释
类的访问修饰符只有两个:public、package 但是特殊的情况下:
成员内部类和静态内部类前面还可以有protected、private访问修饰符
(而局部内部类和匿名内部类没有这两种修饰符),
同时静态内部类也可以有static修饰符
成员内部类和静态内部类前面还可以有protected、private访问修饰符
(而局部内部类和匿名内部类没有这两种修饰符),
同时静态内部类也可以有static修饰符
public
(default)
修饰符
final
abstract
(default)
变量修饰符
注意
Java中没有全局变量,只有方法变量、实例变量(类中的非静态变量)、类变量(类中的静态变量)
方法中的变量(局部变量)不能够有访问修饰符。所以下面访问修饰符表仅针对于在类中定义的变量。
声明实例变量时,如果没有赋初值,将被初始化为null(引用类型)或者0、false(原始类型)。
基本格式
访问修饰符 修饰符 变量类型 变量名 (赋值语句)
访问修饰符
局部变量不能使用访问修饰符
修饰符
static
final
transient
volatile
(default)
方法修饰符
注意
基本格式
访问修饰符 修饰符 返回类型 方法名称(参数列表)throws 违例列表
访问修饰符
类型说明符
static
final
abstract
native
synchronized
接口修饰符
基本格式
访问修饰符 interface 接口名称 extends 接口列表
访问修饰符
public
(default)
面向对象
类与对象
构造方法
参考资料
Java中的构造方法
没有返回类型
只能使用访问修饰符,不能使用类型修饰符(static、final、synchronized、abstract和native)
抽象类与接口
接口
特性
接口中的方法会被隐式的指定为 public abstract
(只能是 public abstract,其他修饰符都会报错)
(只能是 public abstract,其他修饰符都会报错)
接口中的变量会被隐式的指定为 public static final 变量
格式
[可见度] interface 接口名称 [extends 其他的接口名] {
// 声明变量
// 抽象方法
}
// 声明变量
// 抽象方法
}
抽象类
特性
跟普通的类完全一模一样
除了不能被实例化(必须被继承)
除了不能被实例化(必须被继承)
继承(Inheritance)
继承的特性
子类拥有父类非private的属性、方法
为什么需要继承
防止代码臃肿
继承的坏处
增加了代码的耦合性
不支持多继承,支持多重继承
extends与implements
继承格式
class 子类 extends 父类 {}
实现接口格式
class 子类 implements A,B {}
super与this
通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
多态(Polymorphism)
多态存在的三个必要条件
继承
重写
父类应用指向子类对象
Parent p = new Child()
封装
注释
参考资料
Javadoc 使用详解
javadoc中文档注释标记的使用
类注释
方法注释
常用包
输入输出
Stream
IO
File
参考资料
数据结构
Object
参考资料
equals()和HashCode()深入理解以及Hash算法原理
Java Object 类
java的Object类有哪些方法
解释
Object类中的equals方法和“==”是一样的,没有区别,
即俩个对象的比较是比较他们的栈内存中存储的内存地址。
而String类,Integer类等等一些类,是重写了equals方法,
才使得equals和“==不同”,他们比较的是值是不是相等。
即俩个对象的比较是比较他们的栈内存中存储的内存地址。
而String类,Integer类等等一些类,是重写了equals方法,
才使得equals和“==不同”,他们比较的是值是不是相等。
obj1.equals(obj2)
==
hashCode()
toString()
String
声明与创建
String直接创建
举例
String s1 = "Runoob"
String对象创建
举例
String s4 = new String("Runoob")
解析
StringBuffer
格式化字符串
String.format()
常用方法
定位
str.charAt(index)
解释
返回指定索引处的字符
拼接
str1.concat(str2)
+
长度
str.length
比较
str1.equals(str2)
解释
比较值
str1.compareTo(str2)
返回值
如果参数字符串等于此字符串,则返回值 0
如果此字符串小于字符串参数,则返回一个小于 0 的值
如果此字符串大于字符串参数,则返回一个大于 0 的值
==
解释
比较地址
Enum
解释
Java 枚举是一个特殊的类,一般表示一组常量,使用逗号分割
可以有自己的变量、方法与构造函数
声明与创建
常用方法
EnumClass.values()
返回枚举类中所有的值
en.ordinal()
返回特定枚举量的索引
EnumClass.valueOf()
返回指定字符串常量的枚举常量
举例
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
public static void main(String[] args)
{
// 调用 values()
Color[] arr = Color.values();
// 迭代枚举
for (Color col : arr)
{
// 查看索引
System.out.println(col + " at index " + col.ordinal());
}
// 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
System.out.println(Color.valueOf("RED"));
// System.out.println(Color.valueOf("WHITE"));
}
}
{
RED, GREEN, BLUE;
}
public class Test
{
public static void main(String[] args)
{
// 调用 values()
Color[] arr = Color.values();
// 迭代枚举
for (Color col : arr)
{
// 查看索引
System.out.println(col + " at index " + col.ordinal());
}
// 使用 valueOf() 返回枚举常量,不存在的会报错 IllegalArgumentException
System.out.println(Color.valueOf("RED"));
// System.out.println(Color.valueOf("WHITE"));
}
}
RED at index 0
GREEN at index 1
BLUE at index 2
RED
GREEN at index 1
BLUE at index 2
RED
Array
声明与创建
声明数组变量
dataType[] arrayRefVar
首选使用,C/C++风格
dataType arrayRefVar[]
创建数组
arrayRefVar = new dataType[arraySize];
arrayRefVar = {value0, value1, ..., valuek};
访问
arrayRefVar[i] ( [j] ... )
集合框架体系
Collection - List - ArrayList
引入
import java.util.ArrayList; // 引入 ArrayList 类
声明与创建
ArrayList<ElementClassType> arr =new ArrayList<ElementClassType>(); // 初始化
添加元素
arr.add(e)
访问元素
arr.get(index)
修改元素
arr.set(index)
删除元素
arr.remove(index)
列表长度
arr.size()
查找元素
arr.indexOf(e)
arr.contains(e)
Collection - List - LinkedList
Collection - Map - HashMap
Java新特性
0 条评论
下一页