搜档网
当前位置:搜档网 › 04 FunCode C 开发常用API

04 FunCode C 开发常用API

04 FunCode C 开发常用API
04 FunCode C 开发常用API

FunCode C开发常用API

C语言标准库函数

在实验中,我们需要用到一些C语言标准库函数,主要用于字符串处理,获得随机值,处理数学函数等。

Math.h

函数原型功能与返回值参数说明与应用举例

public static double atan2(

double y, double x );返回两点之间的正

切值

x:点的x坐标

y:点的y坐标

float ftan

= atan2((fMouseY-fY),(fMouseX-fX));

float sqrt(

float x ); 功能:计算平方根

返回值:x的平方根

sqrt(9) = 3

Stdio.h

函数原型功能与返回值参数说明与应用举例

int sprintf(

char *buffer,

const char *format, [ argument] …

); 把格式化的数据写

入某个字符串缓冲

区。

返回值:字符串长

度(strlen)

buffer:char型指针,指向将要写入的

字符串的缓冲区。

format:char型指针,指向的内存里面

存放的将要格式字符串。

[argument]...:可选参数,可以是任何类

型的数据。

sprintf(szUfoName,"ufo_%d_%d",

iLoop, iTotalUfoCount );

String.h

函数原型功能与返回值参数说明与应用举例

extern char *strstr( char *str1,

char *str2

);找出str2字符串

在str1字符串中

第一次出现的位置

(不包括str2的

串结束符)。

返回值:返回该位

置的指针,如找不

到,返回空指针。

strstr(szName, “feichong”) != NULL

说明szName中包含feichong

可以用来判断前一个字符串包含后面

一个字符串

extern int strcmp( const char *s1, const char * s2 );比较字符串s1和

s2。

当s1

值<0

当s1=s2时,返回

strcmp(szName, “feichong_0”) == 0

说明szName与feichong_0相等

可以用来判断前后两个字符串的值

相等

值=0

当s1>s2时,返回值>0

extern char *strcpy( char *dest,

const char *src ); 把从src地址开始

且含有NULL结束

符的字符串复制到

以dest开始的地址

空间

返回指向dest的指

针。

strcpy(“big”,”ufo” );

前一个字符串的内容变为”ufo”

void *memcpy(

const char* dest,

const char *src,

size_t n,

); 从源src所指的内

存地址的起始位置

开始拷贝n个字节

到目标dest所指

的内存地址的起始

位置中

函数返回dest的值

memcpy( m_iGridData, m_iLevelData2,

sizeof(int) * GRID_COUNT *

GRID_COUNT );

extern unsigned int strlen(

char *s

); 计算字符串s的

(unsigned int型)

长度,不包括'\0'在

返回s的长度,不

包括结束符

NULL。

int iStrLen = strlen(“ufo” );

FunCode C API

播放静态精灵的API

API功能与返回值参数说明

int dCloneSprite(const char *szSrcName, const char *szMyName ); 1表示克隆成功,0克

隆失败。失败的原因

可能是在地图中未找

到对应名字的精灵

szSrcName:被复制的精灵模

板的名称

szMyName:指向我们复制出

来精灵的名字

Void

dSetSpriteWidth( const char *szName, const float fWidth ); 设置精灵外形宽度

数组szName:指向我们要设

置宽度的精灵的名字

fWidth:宽度值,大于0

float

dGetSpriteWidth( const char *szName ); 获取精灵外形宽度

返回值:精灵宽度值

szName:指向要获得宽度的

精灵

Void 设置精灵外形高度szName:指向要设置高度的

dSetSpriteHeight( const char *szName,const float fHeight

); 精灵的名字fHeight:精灵高度值

float

dGetSpriteHeight(const char *szName); 获取精灵外形高度szName:指向要获得高度的

精灵的名字

void dSetSpriteLinearVelocity(c onst char *szName, const float fVelX, const float fVelY

); 设置精灵移动速度szName:指向要设置速度的

精灵的名字

fVelX:X方向速度

fVelY:Y方向速度

float dGetSpriteLinearVelocityX( const char *szName); 获取精灵X方向速度szName:指向要获得速度的

精灵的名字

float

dGetSpriteLinearVelocityY( const char *szName); 获取精灵Y方向速度

szName:指向要获得速度的

精灵的名字

void dSetSpriteLinearVelocityPo lar(const char *szName, const float fSpeed,

const float fPolar

); 按角度朝向设置精灵

移动速度

szName:指向要设置角速度

的精灵的名字

fSpeed:移动速度

fPolar:角度朝向

void dSetSpriteCollisionSend(co nst char *szName, const int iSend); 设置精灵是否可以发

送(产生)碰撞

szName:指向要设置发送碰

撞的精灵的名字

iSend:1可以发送碰撞

0不可以发送碰撞

void dSetSpriteCollisionReceive ( const char *szName,

const int iReceive; ); 设置精灵是否可以接

受碰撞

szName:指向要设置接收碰

撞的精灵的名字

iReceive:

1 可以接受碰撞

0不接受碰撞

Void dSetSpriteWorldLimit( const char *szName,

const EWorldLimit Limit, const float fLeft,

const float fTop,

const float fRight, const float fBottom ); 设置精灵的世界边界

坐标限制及碰撞模式

szName:指向要设置世界边

界和碰撞模式的精灵的名字

Limit:碰撞到世界边界之后

的响应模式,如果为NULL,

碰撞反应由代码决定。其它

值见 EWorldLimit

fLeft:边界的左边X坐标

fTop:边界的上边Y坐标

fRight:边界的右边X坐标

fBottom:边界的下边Y坐标

void dSetSpriteFlipX( const char *szName,

const int iFlipX ); 设置精灵图片X方向

翻转显示

szName:指向要翻转的精灵

的名字

iFlipX:1 翻转

0不翻转(恢复原来

朝向)

void dSetSpriteVisible( const char *szName,

const int iVisible ); 设置精灵隐藏或者显

示(可见不可见)

szName:指向要隐藏的精灵

的名字

iVisible:1可见

0不可见

void dDeleteSprite( const char *szName); 在地图中删除与本对

象实例关联的精灵

szName:指向要删除的精灵

的名字

void dSpriteMoveTo(

const char *szName, const float fPosX,

const float fPosY,

const float fSpeed,

const int iAutoStop ); 让精灵按照给定速度

移动到给定坐标点

szName:指向要移动的精灵

的名字

fPosX:移动的目标X坐标值

fPosY:移动的目标Y坐标值

fSpeed:移动速度

iAutoStop:移动到终点之后

是否自动停止。1表示停止;

0不停止。

void dSetSpritePosition( cosnt char* szName, const float fPosX, const float fPosY ); 设置精灵位置szName:指向要设置位置的

精灵的名字

fPosX:X坐标

fPosY:Y坐标

void dSetSpritePositionX( const char *szName, const float fPosX ); 只设置精灵X坐标szName:指向要设置位置的

精灵的名字

fPosX:X坐标

void dSetSpritePositionY( const char *szName,

const float fPosY ); 只设置精灵Y坐标szName:指向要设置位置的

精灵的名字

fPosY:Y坐标

float dGetSpritePositionX( const char *szName

); 获取精灵X坐标。szName:指向要获得X坐标的

精灵的名字

float dGetSpritePositionY( const char *szName

); 获取精灵Y坐标szName:指向要获得Y坐标的

精灵的名字

void dSetSpriteRotation( 设置精灵的旋转角度szName:指向要设置旋转的

const char *szName, const float fRot ); 精灵的名字

参数fRot:旋转角度,范围0 - 360

float dGetSpriteRotation( const char *szName); 获取精灵的旋转角度szName:指向要获得旋转角

度的精灵的名字

void SetSpriteLifeTime( const char *szName,

const float fLifeTime ); 设置精灵的生命时

长。超过生命时长,

精灵被删除。

szName:指向要设置精灵生

命周期的名字

fLifeTime:生命时长,单位

Void dSetSpriteConstantForceX (

const char *szName,const float fForceX ); 设置精灵X方向常量

推力

szName:指向要设置X方向常

量推力的精灵的名字

fForceX:X方向推力大小

void dSetSpriteConstantForceY( const char *szName, const float fForceY ); 设置精灵Y方向常量

推力

szName:指向要设置Y方向常

量推力的精灵的名字

fForceY:Y方向推力大小

float dGetSpriteLinkPointPosX( const char *szName, const int iId

); 获取精灵链接点X坐

szName:指向要获得X方向链

接点的精灵的名字

参数 iId:链接点序号,第

一个链接点为1,后面依次递

float dGetSpriteLinkPointPosY( const char *szName, const int iId

); 获取精灵链接点Y坐

标。

szName:指向要获得Y方向链

接点的精灵的名字

参数 iId:链接点序号,第

一个链接为1,后面依次递加

void dSetSpriteImpulseForcePola r(

const char *szName,const float fPolar, const float fForce,

const int iGravitic ); 按角度朝向设置精灵

瞬间推力

szName:指向要设置瞬间推

力的精灵的名字

fPolar:角度朝向

fForce:推力大小

iGravitic:是否计算重力

1:计算

0:不计算

float dGetSpriteMass( const char *szName); 获取精灵质量

返回值:质量大小

szName:指向要获得质量的

精灵的名字

播放动态精灵的API

API 功能与返回值参数说明

int dAnimateSpritePlayAnimati on(

const char *szName,

const char *szAnim,

const int iRestore ); 动画精灵播放动画

返回值:是否播放

成功

1表示成功,

0表示不成功

szName:指向要播放动画的精灵的

名字

szAnim:动画名字。注意不是精灵

名称。

bRestore:播放完毕后是否恢复当

前动画1:恢复

0:不恢复

设置文字精灵的API

类成员函数功能与返回值参数说明

void dSetTextValue(

const char *szName,

int iValue

); 文字精灵显示某个

数值

szName:指向文字精灵的名字

iValue:要显示的数值

设置特效精灵的API

API功能与返回值参数说明

void dPlayEffect(

const char *szSrcName,

const float fLifeTime,

const float fPosX,

const float fPosY,

const float fRotation ); 播放一个不循环的

特效,播放完毕之后

该特效自动删除

szSrcName:特效精灵的名字,

fLifeTime:特效精灵的生命长度,

fPosX:播放的X坐标

fPosY:播放的Y坐标

fRotation:播放的角度朝向

设置播放声音的API

API功能与返回值参数说明

void dPlaySound( const char *szName, const int iLoop, const float fVolume ); 播放声音特效szName:播放声音的路径或者名称

iLoop:是播放否循环播放

1:循环播放

0:不循环播放

fV olume :0-1音量的大小

void dStopSound(

const int iSoundId); 停止播放该声音iSoundId:播放声音的时候返回的

声音的ID

系统相关功能的API

API功能与返回值参数说明

static float dGetScreenLeft(); 获取世界边界之左边X坐标

static float dGetScreenTop(); 获取世界边界之上边Y坐标

static float dGetScreenRight(); 获取世界边界之右边X坐标

static float dGetScreenBottom(); 获取世界边界之下边Y坐标

static char* dMakeSpriteName(

const char *szPrev,

const int iId

); 将前面的字符串与

后面的数字整合成

一个字符串。

返回值:返回一个

字符串,比如传入

("xxx", 2),则返回

"xxx2"

szPrev:一个非空字符串,最长不

能超过20个英文字符。

iId:一个数字

CSystem::

MakeSpriteName(“xxx”,2);

得到xxx2的字符串

static void

dSetWindowTitle(

const char *szTitle

);

设置窗口名字/标题szTitle:非空字符串

static int dRandomRange( const int iMin,

const int iMax

); 获取一个位于参数

1到参数2之间的随

机数

返回值:int,范围

iMin - iMax

iMin:小于iMax的整数

iMax:大于iMin的整数

static void dShowCursor( const bool bShow ); 隐藏/显示鼠标bShow:true 为显示

false 为隐藏

static void dDrawLine(

const float fStartX,

const float fStartY,

const float fEndX,

const float fEndY,

const float fLineWidth,

const int iLayer,

const int iRed,

const int iGreen,

const int iBlue,

const int iAlpha

); 在两点之间画一条

线

fStartX:起始坐标X

fStartY:起始坐标Y

fEndX:终点坐标X

fEndY:终点坐标Y

fLineWidth:线的粗细,大于等于

1

iLayer:改线所在的层,与编辑器

里设置的精灵的层级是同一个概

念。

范围0 - 31。

参数iRed, iGreen, iBlue : 红绿蓝

三原色的颜色值,范围0 - 255

参数iAlpha:线的透明度,范围

0-255. 0为全透明,255为不透明

Static float dRotationToVectorX(

const float fRotation ); 计算某个角度对应

的直线向量的X方

返回值:该直线向

量的X值

fRotation:角度,范围0 - 360

static float 计算某个角度对应fRotation:角度,范围0 - 360

dRotationToVectorY(

const float fRotation ); 的直线向量的Y方向

返回值:该直线向量的Y值

实验5 JAVA常用类

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期成绩指导教师批改日期 实验5 JAVA常用类实验名称 一.实验目的: (1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;(2)掌握字符串的比较方法,尤其equals方法和==比较的区别; (3)掌握String类常用方法的使用; (4)掌握字符串与字符数组和byte数组之间的转换方法; (5)Date,Math,PrintWriter,Scanner类的常用方法。 二.实验内容 1.二进制数转换为十六进制数(此程序参考例题249页9. 2.13) 程序源代码 import java.util.*; public class BinToHexConversion{ //二进制转化为十六进制的方法 public static String binToHex(String bin){ int temp; //二进制转化为十六进制的位数 if(bin.length()%4==0) temp = bin.length()/4; else temp = bin.length()/4 + 1; char []hex = new char[temp]; //十六进制数的字符形式 int []hexDec = new int[temp];//十六进制数的十进制数形式 int j = 0; for(int i=0;i=0&&dec<10) return (char)('0'+dec-0); else if(dec>=10&&dec<=15) return (char)('A'+dec-10); else return '@'; }

Java常用类和方法面试题+答案

2015年12月20日18:25:21 Java常用类和方法重点总结 作者:数据分析玩家 1、简述Java中内存分配的问题 1>凡是new()出来的东西,都是在堆中进行分配的 2>局部变量【数据类型+变量名】都是在栈中进行分配的 3>静态变量【static】和字符串常量【“String”】都是在数据区进行分配的 4>方法【代码】都是在代码区进行存放的 2、简述Java中Object类的地位 1>Java中所有的类【自己定义的类以及Sun公司提供的类】都默认自动继承了Object类 2>Java中所有的类都从Object类中继承了toString()方法、hashCode()方法和equals()等方法 3、简述Object类中toString()方法的注意事项 1>toString()方法的返回值是一个字符串 2>toString()方法返回的是类的名字和该对象的哈希码组 成的一个字符串,即toString()方法返回的是该对象的字符串表示形式 3>在Java中System.out.println(类对象名)实际输出的是该对象的toString()方法返回的字符串,即括号中的内容等价于类对象名.toString(),toString方法的好处是在碰到

println方法的时候会被自动调用,不用显示的写出来 4>建议所有的子类都重写从Object类中继承过来toString 方法,否则toString方法的返回值没有什么实际含义 4、简述Object类中equals()方法的注意事项 1>equals方法的返回值为true或false 2>Object类中equals方法只有在两个对象是同一块内存区域时,即不但内容相同、地址还必须相同时才返回true,否则即便内容相同、如果地址不同只会返回false 3>重写Object类中的equals方法目的在于:保证只要两个对象的内容相同,equals方法就返回true 5、简述Object类中hashCode()方法的注意事项 1>哈希码原本指的是内存空间地址的十六进制表示形式 2>hashCode()方法返回的是该对象的哈希码、即该对象的真实内存地址的十六进制表示形式,但是重写完hashCode()方法之后,返回的不再是该对象真实内存地址的十六进制表示形式 6、学习Java中toString方法、equals方法、hashCode方法共同的一个注意事项 在Java中,凡是动态分配的内存都是没有名字的,而是将其地址赋给一个指针变量【引用】,用指针变量去代表这个事物,所以引用和动态分配的内存有本质上的区别,但是在学习Java中的toString方法、equals方法和hashCode方

2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

java中常用关键字总结

Java中的关键字总结 final 关键字 1、用final修饰的类不能被继承,没有子类; 2、用final修饰的方法,方法不能被重写; 3、用final修饰变量,变量的值不能被修改,表示常量,(书写规范:全部字母都要大写;多个单词,可以使用下划线(_)分开;) 注意:如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错;如果被final修饰的变量是一个引用类型的数据,那么通过这个引用改变堆空间中的数据,不会报错; 4、final用于成员变量表示该成员变量为常量,不能被修改,必须在变量定义时赋值。 5、final用于局部变量表示该局部变量为常量,不能被修改,可以在变量定义时赋值,也可以先定义变量后赋值。 什么时候用final关键字? 有的时候不想别人重写我的方法就使用final关键字修饰该方法; static关键字 1、static用于成员变量表示该变量只有一份,也就是说静态成员变量属于类而不属于某个具体的类实例对象,所有的类实例对象共享这个静态成员变量;静态函数是不需要对象的,直接可以使用类名来调用; 2、非静态函数可以调用静态函数;静态函数不能调用非静态函数(非静态函数都是通过对象调用的);静态函数不能使用非静态成员变量,但可以使用静态成员变量; 3、静态函数调用时不需要对象的,所以不能使用和对象有关的关键字;(this;super;) 4、构造函数不能使用static修饰(构造函数是创建对象,开辟空间,给所有成员变量赋默认值之后,有JVM调用进栈,用来给对象的成员变量赋初始值的) static用于类,这里指的是内部类,那么在别的地方就可以通过外部类名来引用这个静态的内部类。 5、static还可以用于类的代码块,叫做静态代码块,静态代码块在类加载的时候就执行完毕,而类只加载一次;是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先

JAVA中常用类的常用方法

JAVA中常用类的常用方法 一、https://www.sodocs.net/doc/1a16453046.html,ng.Object类 1、clone()方法 创建并返回此对象的一个副本。要进行“克隆”的对象所属的类必须实现https://www.sodocs.net/doc/1a16453046.html,ng. Cloneable接口。 2、equals(Object obj)方法 ?功能:比较引用类型数据的等价性。 ?等价标准:引用类型比较引用,基本类型比较值。 ?存在特例:对、Date及封装类等类型来说,是比较类型及对象的内容而不考虑引用的是否为同一实例。 3、finalize()方法 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 4、hashCode()方法返回该对象的哈希码值。 5、notify()方法唤醒在此对象监视器上等待的单个线程。 6、notifyAll()方法唤醒在此对象监视器上等待的所有线程。 7、toString()方法 返回该对象的字符串表示。在进行String与其它类型数据的连接操作时,自动调用toString()方法。可以根据需要重写toString()方法。 8、wait()方法 在其他线程调用此对象的notify() 方法或notifyAll() 方法前,导致当前线程等待。 二、字符串相关类 l String类 charAt(int index) 返回指定索引处的char 值。 compareTo(String anotherString) 按字典顺序比较两个字符串。 compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。 concat(String str) 将指定字符串连接到此字符串的结尾。 endsWith(String suffix) 测试此字符串是否以指定的后缀结束。 equals(Object anObject) 将此字符串与指定的对象比较。 equalsIgnoreCase(String anotherString) 将此String 与另一个String 比较,不考虑大小写。indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 length() 返回此字符串的长度。 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用newChar 替换此字符串中出现的所有oldChar 得到的。split(String regex) 根据给定正则表达式的匹配拆分此字符串。 startsWith(String prefix) 测试此字符串是否以指定的前缀开始。 substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的字符,一直到此字符串末尾。 substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的beginIndex 处开

实验5Java常用类(一)

实验5 Java类库和常用类(一) 一. 实验目的及实验环境 1理解类库的概念,掌握分析、应用类库中的类的方法。 2熟练掌握Math类的常用方法。熟悉Random类的常用方法。 3理解String类的特性,熟练掌握String类的常用方法。 4能用Date类创建对象,熟练掌握Date类的常用方法。 5熟练掌握SimpleDateFormat解析日期和设置日期输出格式。 6学会查阅Java API在线参考文档和离线文档的方法。 二. 实验内容 1 基本内容(实验前请及时熟悉如下相关内容) 1)练习使用Math类的常用方法。 2)应用String类编程练习。 3)编写程序应用Random类生成随机数。 4)练习使用Date类的常用方法。 5)查阅Java API在线参考文档和下载Java API离线文档。 示例1. 应用SimpleDateFormat类的程序示例如下,共同学们模仿参考。 import java.text.*; import java.util.Date; public class FormatDateTime { public static void main(String[] args) { SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒"); SimpleDateFormat myFmt1 = new SimpleDateFormat("yy/MM/dd HH:mm"); SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 等价于now.toLocaleString() SimpleDateFormat myFmt3 = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒 E "); SimpleDateFormat myFmt4 = new SimpleDateFormat("一年中的第 D 天一年中第w个星期一月中第W个星期在一天中k时 z时区"); Date now = new Date();//当前时间 System.out.println(myFmt.format(now)); System.out.println(myFmt1.format(now)); System.out.println(myFmt2.format(now)); System.out.println(myFmt3.format(now)); System.out.println(myFmt4.format(now)); System.out.println(now.toGMTString());//The method toGMTString() from the type Date is deprecated. System.out.println(now.toLocaleString()); System.out.println(now.toString()); } }

java常用类知识点总结

java常用类知识点总结 Java常用类 要求: 1、掌握String和StringBuffer的区别,可以熟练使用String和StringBuffer的各 种方法进行相关操作。 2、能够自己编写一个得到日期的操作类,并将日期进行格式化操作。 3、掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。 4、掌握对象克隆技术及其实现 5、能够灵活应用正则表达式对字符串的组成进行判断 6、掌握Math、Random、基本数据类型的包装类的使用 7、描述出Object System对垃圾收集的支持 8、使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操 作 String和StringBuffer String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址,如果一个字符串要经常改变,必须使用StringBuffer。 在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为StringBuffer内容可以改变,而String内容不可改变。StringBuffer支持的方法大部分与String类似。 StringBuffer常见用法: (1) 字符串的连接操作

String类可以通过“+“进行字符串的连接,而StringBuffer中却只能使用append方法进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append方法。 (2) 在任意位置处为StringBuffer添加内容 可以使用insert方法在指定位置上为StringBuffer添加内容 字符串的反转操作(较为常见的操作,使用reverse方法) (3) 替换指定范围的内容 replace方法可对指定范围的内容进行替换。在String中如果要替换,使用的是replaceAll (4) 字符串截取(使用subString方法从指定范围中截取内容) (5) 删除指定范围的字符串(使用delete方法删除指定范围内容) (6) 查找指定内容是否存在(indexOf查找指定内容,查找到返回内容的位置, 没查到返回-1) 问题:(1)String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有, 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢,答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改, 或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为 String对象建立之后不能再改变,所以对于每一个不同的字符

Java常用类String的面试题汇总

Java常用类String的面试题汇总 1、比较两个字符串时使用“==”还是equals()方法? 当然是equals方法。“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。简单来说,基本数据类型都可以使用==。而引用类型使用==比较不了。 2、如何将字符串转化成int? 使用包装类Integer。Integer.valueOf("2");其他基本数据类型都是类似 3、为什么在Java中存储密码要使用char[],而不使用String。 因为String是不可变的,当String创建之后,就不会再改变了。而char[]是可变的,程序员在用完之后可以将其改变,不会留下任何原始数据。所以,在使用密码时,一般都是会用char数组,例如JavaSwing中的JPassWordField,获取密码框的值就是使用char 数据。而不使用String。 4、String可以在Switch语句中使用吗? JDK1.7之后确实可以了。之前不行。需要程序员对JDK升级的API有适当的了解。 5、如何将字符串用空白字符分割开 可以使用正则表达式来做到分割字符。“\s”代表空白字符”“, “\t”, “\r”, “\n”等等, String[] strArray = str.split("\\s+"); 6、substring()方法到底做了什么? 因为String是不可变的,所以在字符串截取时,subString做了一些工作。在JDK6时,用一个字符数组来表示现存的字符串,然后在这个字符数组中截取字符串,截取之后,并没有创建新的字符数组。而在JDK7中,截取的新的字符串是一个新的数组,这样效率更快一些。因为垃圾回收器会去回收不再使用的字符串。

JAVA重点知识总结

CoreJava部分 1简述下java基本数据类型及所占位数,java基本数据类型:4类8种 整数类型:byte(1byte),short(2byte),int(4byte),long(8byte) 浮点类型:float(4byte),double(8byte) 字符类型:char(2byte) 逻辑类型:boolean(false/true1byte) 2说出5个启动时异常 ------RunTimeException ------NullPointerException ------ArrayIndexOutOfBoundsException ------ClassCastException ------NumberFormatException 3HashMap和HashTable的区别: 1HashMap允许空键值对,HashTable不允许 2HashMap不是线程安全的,HashTable是 3HashMap直接实现Map接口,HashTable继承Dictionary类 4.ArrayList,Vector,LinkedList存储性能和区别 它们都实现了List接口 ArrayList和Vector都是基于数组实现的 LinkedList基于双向循环链表(查找效率低,添加删除容易) ArrayList不是线程安全的而Vector是线程安全的,所有速度上ArrayList高于Vector 5.Collection和Collections的区别 Collection是集合类的上级接口,继承与他的接口主要有Set和List Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。 6List、Map、Set三个接口,存取元素时,各有什么特点? List以特定次序来持有元素,可有重复元素。 Set无法持有重复元素,内部排序 Map保存key-value值,value可多值。 7final,finally,finalize的区别 Final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承Finally是异常处理语句结构的一部分,表示总是执行 Finalize是Object类的一个方法,在垃圾收集时的其他资源回收,例如关闭文件等。8Overload和Override的区别。Overload的方法是否可以改变返回值的类型? 方法的重写Override和重载Overload是Java多态的不同表现。 重写Overriding是父类与子类之间多态的一种表现,方法名,参数列表返回值类型都得与父类的方法一致。 重载Overloading是一种类中多态的一种表现。重载的方法是可以改变返回值类型的。9用一句话总结一下冒泡排序 依次比较相邻的两个数,将小数放在前面,大数放在后面。 10实现线程安全的两种方式 1)synchronized方法:通过在方法声明加入synchronized关键字来声明synchronized方法

Java常用包及其类总结

Java常用包及其类总结 java.* https://www.sodocs.net/doc/1a16453046.html,ng包,最基础的包、核心类库。常用类有String、Math、Thread、Object、包装类Integer、Character等,常用接口有Runnable、Iterable、Comparable。 2.java.util包,实用工具包。常用类有Arrays、Scanner、Random、HashSet、HashMap、ArrayList、Date等,常用接口有Collection、Set、List等。 3.java.io包,提供数据输入输出。常用类有File、FileInputStream、Reader等提供文件、字节输入输出的类。 https://www.sodocs.net/doc/1a16453046.html,包,为网络连接提供服务。常用类有Socket、ServerSocket、URL等。 5.java.sql包,连接数据库的包。要实现jdbc类库。 6.java.awt、(javax.awt)包,创建用户界面、绘图的。常用类有Button、Panel、(JButton、JPanel)等。 javax.* javax.accessibliity定义UI组件访问的技术规范 java.crypto 包含与加密相关的类和接口 javax.imageio为图形的I/O处理提供支持 javax.management提供与JMX(Java Managment Extensions)相关的类 javax.naming 包含与访问名字服务器相关的类和接口 https://www.sodocs.net/doc/1a16453046.html, 包含网络应用需要的类 javax.print 包含打印所需要的类和接口 javax.rmi 包含RMI_IIOP服务的类和接口 javax.security.auth提供了一个认证和授权框架 javax.security.cert包含支持公钥证书的相关类 javax.security.sasl包含与支持SASL(Simple Authentication and Security Layer)相关的类和接口javax.sound.midi包含与MIDI数据操作相关的类和接口 javax.sound.sampled包含与抓取、加工、回放音频数据相关的类和接口 javax.sql 包含与服务器端访问和数据源处理相关的API javax.transaction包含事务管理器和资源管理器的规则 javax.xml 包含XML规范描述的常亮和要求

常用的几种java集合类总结

一:直观框架图 简单版: 详细版: Java集合框架 Java集合框架主要包括两种类型的容器,一种是集合(Collection),另一种是图(Map)。Collection接口又有3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、lixxxxnkedList、HashSet、lixxxxnkedHashSet、HashMap、lixxxxnkedHashMap等等。Map常用的有HashMaplixxxxnkedHashMap等。 二、Collection接口 1.List List接口扩展自Collection,它可以定义一个允许重复的有序集合,从List接口中的方法来看,List接口主要是增加了面向位置的操作,允许在指定位置上操作元素,同时增加了一个能够 双向遍历线性表的新列表迭代器ListIterator。AbstractList类提供了List接口的部分实现,

AbstractSequentialList扩展自AbstractList,主要是提供对链表的支持。下面介绍List接口的 两个重要的具体实现类,也是我们可能最常用的类,ArrayList和lixxxxnkedList。 1.1ArrayList 通过阅读ArrayList的源码,我们可以很清楚地看到里面的逻辑,它是用数组存储元素的,这 个数组可以动态创建,如果元素个数超过了数组的容量,那么就创建一个更大的新数组,并 将当前数组中的所有元素都复制到新数组中。假设第一次是集合没有任何元素,下面以插入 一个元素为例看看源码的实现。 1. 2. 1、找到add()实现方法。 3. 4. 5. 6. public boolean add(E e) { 7. 8. ensureCapacityInternal(size + 1); // Increments modCount!!

何小伟-高手总结java常用API

Java常用API的运用,效率及技巧 1. Java面向对象基本概念 2. System 3. String, StringBuffer 4. 数值,字符,布尔对象与简单类型的操作 5. Class, ClassLoader 6. Java IO系统 7. Java集合类 8. ResourceBundle, Properties 9. Exceptions 10. JDBC类库 11. 常用设计模式 1. Java面向对象基本概念 Java基本上是面向对象的程序设计语言,除了一些简单类型(primitive)的变量以外,一切都是对象,程序是对象的组合,每个对象都有自己的空间,并且每个对象都有一种类型,同一类所有对象都能接受相同的消息。下面只对Java中对象的结构作简单的说明: 类(class): class是定义类的关键字,类中包含类变量,方法,内部类,内部接口等。由class可以生成类的实例,即一个个对象。如果一个类的成员被定义 成static的,则这个成员不专属于任何对象,而是属于这个类,所有的对象共享这 个成员。 抽象类(abstract class): 抽象类不能直接生成一个实例,抽象类中必需有方法是abstract的,抽象类的意思就是它实现了一部分的方法,而定义为abstract的方法 则需要在它的字类中去实现。 接口(interface): 接口可以理解为纯抽象的类,它的每个方法都是未实现的,它可以有成员变量,但必须是static的。一个类如果从这个接口继承(implements) 则它必须实现这个接口的所有方法。 继承类用关键字:extends,继承接口用关键字:implements。一个类只能从一个类继承下来,但可以从多个接口继承(类似于C++的多重继承)。字类可以覆盖父类的方法(method),但不能覆盖父类的成员变量(field)。如果父类的方法为final或static的则不能被覆盖。类的初始化顺序是,如果有父类,则先初始化父类的field,然后执行父类的构造函数,如果子类没有显式的去调父类的构造函数则缺省的会去调父类的无参数构造函数。然后是子类的field 与构造函数的初始化。 public interface SuperInterface { public staitc String SOME_FLAG = “1”; public void someMethod(); } public Class SuperClass { { System.out.println(“init SuperClass field”);} public SuperClass() {System.out.println(“init SuperClass Constructor”); } public void runMethod() { System.out.println(“run SuperClass runMethod()”); } }

java学习整体总结

CoreJava部分 1 简述下java基本数据类型及所占位数,java基本数据类型:4类8种 整数类型:byte(1byte),short(2byte),int(4byte),long(8byte) 浮点类型:float(4byte),double(8byte) 字符类型:char(2byte) 逻辑类型:boolean(false/true 1byte) 2 说出5个启动时异常 RunTimeException ------NullPointerException ------ArrayIndexOutOfBoundsException ------ClassCastException ------NumberFormatException 3 HashMap 和HashTable的区别: 1HashMap 允许空键值对,HashTable不允许 2HashMap不是线程安全的,HashTable是 3HashMap直接实现Map接口,HashTable继承Dictionary类 4. ArrayList,Vector,LinkedList存储性能和区别 它们都实现了List接口 ArrayList和Vector都是基于数组实现的 LinkedList基于双向循环链表(查找效率低,添加删除容易) ArrayList不是线程安全的而Vector是线程安全的,所有速度上 ArrayList高于Vector 5. Collection和Collections的区别 Collection是集合类的上级接口,继承与他的接口主要有Set和List Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作。 6 List、Map、Set三个接口,存取元素时,各有什么特点? List以特定次序来持有元素,可有重复元素。 Set 无法持有重复元素,内部排序 Map保存key-value值,value可多值。 7 final,finally,finalize的区别 Final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承 Finally 是异常处理语句结构的一部分,表示总是执行 Finalize 是Object类的一个方法,在垃圾收集时的其他资源回收,例如关闭文件等。 8 Overload和Override的区别。Overload的方法是否可以改变返回值的

JAVA中常见异常类总结

1)、NullPointerException(值为空):见的最多了,其实很简单,一般都是在null对象上调用方法了。 String s=null; boolean eq=s.equals("");//NullPointerException 这里你看的非常明白了,为什么一到程序中就晕呢? public int getNumber(String str){ if(str.equals("A"))return1; else if(str.equals("B"))return2; } 这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。 public int getNumber(String str){ if(str==null) {throw new NullPointerException("参数不能为空");} //你是否觉得明白多了if(str.equals("A"))return1; else if(str.equals("B"))return2; } 2)、NumberFormatException:继承IllegalArgumentException,字符串转换为数字时出现。比如int i=Integer.parseInt("ab3"); 3)、ArrayIndexOutOfBoundsException:数组越界。比如int[]a=new int[3];int b=a[3];

4)、StringIndexOutOfBoundsException:字符串越界。比如String s="hello";char c=s.chatAt(6); 5)、ClassCastException:类型转换错误。比如Object obj=new Object(); String s=(String)obj; 6)、UnsupportedOperationException:该操作不被支持。如果我们希望不支持这个方法,可以抛出这个异常。 既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。 7)、ArithmeticException:算术错误,典型的就是0作为除数的时候。 8)、IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。

Java代码常用工具类整理归纳

Java代码常用工具类整理归纳 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java代码中使用最频繁及最通用的Java工具类。欢迎大家阅读! 一、https://www.sodocs.net/doc/1a16453046.html,mons.io.IOUtils closeQuietly:关闭一个IO流、socket、或者or且不抛出异常,通常放在finally块 toString:转换IO流、 Uri、 byte[]为String copy:IO流数据复制,从输入流写到输出流中,最大支持2GB toByteArray:从输入流、URI获取byte[] write:把字节. 字符等写入输出流 toInputStream:把字符转换为输入流 readLines:从输入流中读取多行数据,返回List copyLarge:同copy,支持2GB以上数据的复制 lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败。 二、https://www.sodocs.net/doc/1a16453046.html,mons.io.FileUtils Directory:删除文件夹 readFileToString:以字符形式读取文件内容 Queitly:删除文件或文件夹且不会抛出异常 copyFile:复制文件 writeStringToFile:把字符写到目标文件,如果文件不存在,则创建 forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级 write:把字符写到指定文件中 listFiles:列举某个目录下的文件(根据过滤器) copyDirectory:复制文件夹 forceDelete:强制删除文件 三、https://www.sodocs.net/doc/1a16453046.html,ng.StringUtils isBlank:字符串是否为空(trim后判断) isEmpty:字符串是否为空(不trim并判断) equals:字符串是否相等 join:合并数组为单一字符串,可传分隔符 split:分割字符串 EMPTY:返回空字符串 trimToNull:trim后为空字符串则转换为null replace:替换字符串

java 中常用的方法总结

8月1日 练习: 合理覆盖Cat数据类型的,equals()方法 Cat.java 1 覆盖hashCode() 返回的整型值是唯一的 int hashCode() 用法: 一般使用String提供hashCode的编码+基本数据类型 hashCode 生成原则: 1 当对象内容一致时,生成的hashCode必须是一样的 2 当对象内容不致时,生成的hashCode必须是唯一的 HashtableTest1.java hashtable 中的key如果是自定义数据类型,那么它必须覆盖equals()和hashCode() //考试 1 hashCode() ArrayList * Hashtable * 2 其他的存储方式: LinkedList //特点:可以删除指定位置数据 练习: 向LinkedList添加: A B C D 打印出时为:DCBA LinkedListTest.java 练习(MyQueueTest.java): 模拟一个队伍(队列),去买票一个动作 思路: 1 模拟一个队列(add) 2 模拟出列(removeXXXX) //先买票的人,先出队列——先入先出 队伍是一个特殊数据结构, 特点:FIFO(先入先出) HashSet //不允许重复元素 集合框架类的特点: 1 Collection 接口是一组允许重复的对象 2 Set接口继承Collection,但不允许重复使用自己内部的一个排列机制 3 List接口继承Collection,允许重复,以元素安插的次序来放置元素,不会重新排列。 4 Map接口是一组成对的键——值对象,即所持有的是key—value pairs。Map中不能有重复的key。拥有自己内部机制。 5 在集合框架类中有两大类接口:

java常用类知识点总结

Java常用类 要求: 1、掌握String和StringBuffer的区别,可以熟练使用String和StringBuffer的各 种方法进行相关操作。 2、能够自己编写一个得到日期的操作类,并将日期进行格式化操作。 3、掌握比较器及其基本原理,并可以通过比较器进行对象数组的比较操作。 4、掌握对象克隆技术及其实现 5、能够灵活应用正则表达式对字符串的组成进行判断 6、掌握Math、Random、基本数据类型的包装类的使用 7、描述出Object System对垃圾收集的支持 8、使用NumberFormat、DecimalFormat、BigInteger、BigDecimal进行数字的操 作 String和StringBuffer String的内容一旦声明不可改变,如果要改变,改变的是String的引用地址,如果一个字符串要经常改变,必须使用StringBuffer。 在一个字符串内容需要频繁修改时,使用StringBuffer可以提升操作性能,因为StringBuffer内容可以改变,而String内容不可改变。StringBuffer支持的方法大部分与String类似。 StringBuffer常见用法: (1)字符串的连接操作 String类可以通过“+“进行字符串的连接,而StringBuffer中却只能使用append 方法进行字符串的连接,而且此方法返回一个StringBuffer类的实例,这样就可以采用代码链的形式一直调用append方法。 (2)在任意位置处为StringBuffer添加内容 可以使用insert方法在指定位置上为StringBuffer添加内容 字符串的反转操作(较为常见的操作,使用reverse方法) (3)替换指定范围的内容 replace方法可对指定范围的内容进行替换。在String中如果要替换,使用的是replaceAll (4)字符串截取(使用subString方法从指定范围中截取内容) (5)删除指定范围的字符串(使用delete方法删除指定范围内容) (6)查找指定内容是否存在(indexOf查找指定内容,查找到返回内容的位置,没查到返回-1) 问题:(1)String s = "Hello";s = s + " world!";这两行代码执行后,原始的String 对象中的内容到底变了没有? 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是"Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改,

相关主题