Java整理(一)基础和常用类
来源:互联网 发布:mac mini性能怎么样 编辑:程序博客网 时间:2024/06/05 02:22
Java编程基础
Java关键字
abstract
assert
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
enum
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
strictfp
short
static
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
assert,用来进行程序调试,断言条件是否满足
const,保留
goto,保留
native,方法用非Java代码实现
strictfp,浮点数比较使用严格的规则
synchronized,同一时间只有一个线程访问
transient,不序列化字段
volatile,标记字段可能被多个线程访问而不做同步
true、false、null不是关键字,是显式常量
一些概念
Java SE(面向对象、API、JVM…)
Java EE(JSP、EJB、服务器…)
Java ME(移动设备、游戏、通信…)
JVM(Java Virtual Machine)Java虚拟机,实现跨平台
JDK(Java Development kit)Java开发工具包
JRE(Java Runtime Environment)Java运行时环境
配置环境变量:
jdk/binjavac.exe java.exe
jdk/lib类库文件.jar
JAVA_HOME配置JDK安装路径
PATH 配置JDK命令文件位置(bin)
CLASSPATH 配置类库文件位置(lib)
修饰符
访问控制修饰符
修饰符
本类
同包
子类
其他包
private
Y
default
Y
Y
protected
Y
Y
Y
public
Y
Y
Y
Y
非访问修饰符
static,修饰静态类方法和类变量
final,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
abstract,用来创建抽象类和抽象方法。
synchronized 和 volatile,主要用于线程的编程。
transient,序列化的对象包含被 transient 修饰的实例变量时,java 虚拟机(JVM)跳过该特定的变量。
数据类型
byte
1字节
float
4字节
short
2
double
8
int
4
char
2
long
8
boolean
整数类型:有符号的以二进制补码表示的整数
浮点数:符合IEEE 754标准的浮点数
char:16 位 Unicode 字符
低 ------------------------------------> 高
byte short char—> int —> long—>float —> double
转义字符
\n 换行 (0x0a)
\r 回车 (0x0d)
\f 换页符(0x0c)
\b 退格 (0x08)
\0 空格 (0x20)
\s 字符串
\t 制表符
\" 双引号
\' 单引号
\\ 反斜杠
\ddd 八进制字符 (ddd)
\uxxxx 16进制Unicode字符 (xxxx)
操作符
算术:+,-,*,/,%,++,--
赋值:=,+=,-=,*=,/=,%=
比较:>,<,>=,<=,==,!=,(对象内容比较重写equals()方法)
逻辑:&&,||,!,^
条件运算符:(?:)
位运算符:>>,<<,>>>(无符号右移),&(按位与),|(按位或),^(按位异或),~(按位非)
其他运算符:[],.,(),new,instanceof(A instanceof B //A是否为B的实例)
直接常量:L或l代表long,F或f代表float,D或d代表double,
0X或0x十六进制,前缀0八进制,1.23e-39科学计数法
控制流程
if…,if…else…,if…else if…
switch后小括号值必须整型或字符型(SE7后支持字符串)
while,do-while,for break,continue,return
for(类型 x: f){}//类似foreach,可用于任何Iterable对象
输入、输出
import java.util.Scanner;
Scanner input = new Scanner(System.in);
int score = input.nextInt();
String str = input.nextLine();
System.out.println();//print()不换行
数组
声明:int[]s;s=new int[5]或int[] s = newint[5];
String str[][] = new String[3][4];
String s[][] = new String[2][];
s[0] = new String[2];
s[1] = new String[3];
二维数组定义可以只给出行,然后为每一行分别指定列数,列数可以不同为不规则二维数组。
s.length数组长度,可以用foreach循环for(int score: s){…}
常用类
Arrays类
Arrays操作Java中数组,方法都是静态的
import java.util.Arrays;
一些常用方法:
public static void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。
public static void fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。
public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 true。
public static int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。
Number类
Java 语言为每一个内置数据类型提供了对应的包装类。
所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。char类型包装类为Character 类
Interger.parseInt(str);//将String转为int,或valueOf()
str=””+int;//将int转为String,或toString()
xxxValue()//将 Number 对象转换为xxx数据类型的值并返回。
Math 类
Math 包含了用于执行基本数学运算的属性和方法,Math 的方法都被定义为static 形式,通过 Math 类可以在主函数中直接调用。
abs()返回参数的绝对值。
ceil()对整形变量向左取整,返回类型为double型。
floor()对整型变量向右取整。返回类型为double类型。
rint()返回与参数最接近的整数。返回类型为double。
round()返回一个最接近的int、long型值。
min()返回两个参数中的最小值。
max()返回两个参数中的最大值。
exp()返回自然数底数e的参数次方。
log()返回参数的自然数底数的对数值。
pow()返回第一个参数的第二个参数次方。
sqrt()求参数的算术平方根。
sin()求指定double类型参数的正弦值。
cos()求指定double类型参数的余弦值。
tan()求指定double类型参数的正切值。
asin()求指定double类型参数的反正弦值。
acos()求指定double类型参数的反余弦值。
atan()求指定double类型参数的反正切值。
atan2()将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
toDegrees()将参数转化为角度。
toRadians()将角度转换为弧度。
random()返回一个随机数,0~1的小数
Random ra = new Random();ra.nextInt();
String类
字符串常量,String对象创建后不能修改,修改其实是创建了新的对象,指向内存空间不同。
int length()
char charAt(int index)
byte[] getBytes()
使用平台的默认字符集将此String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
int indexOf(int ch)
String substring(int)
StringBuffer和StringBuilder类
和 String 类不同,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuffer是线程安全,StrignBuilder没有,所以性能略高,一般优先考虑StringBuilder。
常用方法:
public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
public StringBuffer reverse()
将此字符序列用其反转形式取代。
public delete(int start, int end)
移除此序列的子字符串中的字符。
public insert(int offset, Object)
将 Object 参数的字符串表示形式插入此序列中。
replace(intstart, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。
其他类似String类方法。
Date和SimpleDateFormat类
java.util 包提供了 Date 类来封装当前的日期和时间
Date( )// 使用当前日期和时间来初始化对象
Date(long millisec)//从1970年1月1日起的毫秒数。
System.currentTimeMillis()//获得系统时间毫秒数
boolean after(Date date)
boolean before(Date date)
Object clone( )
int compareTo(Date date)
boolean equals(Object date)
long getTime( )//返回自 1970 年 1 月 1 日 00:00:00 GMT以来此 Date 对象表示的毫秒数。
void setTime(long time)//用自1970年1月1日00:00:00 GMT以后time毫秒数设置时间和日期。
使用 SimpleDateFormat格式化日期
Date d = new date();
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm;ss”);
String today = sdf.format(d);
sdf.parse(str);//将字符串解析为时间
字母 描述 示例
G 纪元标记 AD
y 四位年份 2001
M 月份 Julyor 07
d 一个月的日期 10
h A.M./P.M. (1~12)格式小时 12
H 一天中的小时 (0~23) 22
m 分钟数 30
s 秒数 55
S 毫秒数 234
E 星期几 Tuesday
D 一年中的日子 360
F 一个月中第几周的周几 2 (second Wed. in July)
w 一年中第几周 40
W 一个月中第几周 1
a A.M./P.M.标记 PM
k 一天中的小时(1~24) 24
K A.M./P.M. (0~11)格式小时 10
z 时区 EasternStandard Time
' 文字定界符 Delimiter
" 单引号 `
Calendar类
java.util.Calendar是一个抽象类
Calendarc = Calendar.getInstance();//默认是当前日期
c.set(int year, int month, int date, inthourOfDay, int minute,int second)
c.setTime(Date d);
c.set(Calendar.DATE,10);
c.add(Calendar.DATE, 10);
常量 描述
Calendar.YEAR 年份
Calendar.MONTH 月份
Calendar.DATE 日期
Calendar.DAY_OF_MONTH 日期,和上面的字段意义完全相同
Calendar.HOUR 12小时制的小时
Calendar.HOUR_OF_DAY 24小时制的小时
Calendar.MINUTE 分钟
Calendar.SECOND 秒
Calendar.DAY_OF_WEEK 星期几
int year = c.get(Calendar.YEAR);
Date date = c.getTime();
Long time = c.getTimeInMillis();
- Java整理(一)基础和常用类
- Java常用基础概念整理(一)
- 整理JAVA基础(一)
- Java基础整理(一)
- Java 基础整理(一)
- java基础整理一(基础准备)
- Java基础整理-Java试题(一)
- java基础整理十四(集合一)
- 关于 Java 基础整理(一)
- Java基础------知识点整理(一)
- java jdbc学习整理一(基础)
- 【Java基础】常用知识积累(一)
- 笔记整理(java基础一---环境配置,架构特点..)
- java基础整理十九(IO流一)
- Java学习笔记(一)Java基础和类
- java整理(一)
- java基础整理十七(常用工具类)
- java基础整理十八(高级类)
- python学习:函数的参数
- 1113: 递归调用的次数统计(函数专题)
- linux shell time用法简介
- ADFS 3.0登录页面不用输入域名的实现方法
- java进阶知识点
- Java整理(一)基础和常用类
- 播放器测试的测试点
- 二叉树和多叉树
- [Leetcode] 409. Longest Palindrome 解题报告
- 时间序列分析之holtwinters和ARIMA
- git与github
- 26天学通前端开发(配资料)
- display
- 35个毁掉你代码的不良习惯!