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();

 

原创粉丝点击