dsa編程
⑴ 程序設計裡面的斷言是什麼java裡面的assert,assert.h又是什麼
(一)首先明確:
java斷言Assert是臘稿冊jdk1.4引入的。
jvm 斷言默認是關閉的。
斷言是可以局部開啟的,如:父類禁止斷言,而子類開啟斷言,所以一般說「斷言不具有繼承性」。
斷言只適用於復雜的調試過程。
斷言一般用於程序執輪宏行結果的判斷,千萬不要讓斷言處理業務流程。
(二)判斷eclipse是否開啟了斷言,代碼如下:
public class AssertTest {
public static void main(String[] args) {
boolean isOpen = false;
assert isOpen=true; //如果開啟了斷言,會將isOpen的值改為true
System.out.println(isOpen);//列印是否開啟了斷言
}
}
執行上面代碼,如果列印 true說明已經啟用了斷言,如果為 false 則沒有啟用斷言。
如果沒有啟用斷言,則按按照下面方法開啟斷言。
(三)eclipse中開啟斷言
選擇菜單:Run ---> Run... ---> 選擇 Arguments 選項卡
在 VM arguments 文本框中輸入: -ea 注意 中間沒有空格,如果輸入 -da 表示禁止斷言。
然後關閉該窗口,提示保存,然後保存就開啟了斷言。如下圖:
再次執行第二步操作,如果列印true,說明開啟斷言成功。
如果禁止斷言,則按第二步操作中,刪除 -ea 或者將 -ea 改為 -da 即可。
(四)斷言使用
第 1 種使用方法:
public static void main(String[] args) {
boolean isOk = 1>2;
assert isOk;
System.out.println("程序正常");
}
因為 1>2 顯然是錯誤的,所以執行結果拋出異常:Exception in thread "main" java.lang.AssertionError
如果把 1>2 改為 1<2 則程序能順利執行,列印 「程序正常」
第 2 種使用方法:
public static void main(String[] args) {
boolean isOk = 1>2;
try{
assert isOk : "程序錯誤";
System.out.println("程序正常");
}catch(AssertionError err){
System.out.println(err.getMessage());
}
}
assert 後面跟個冒號表達式。如果冒號前為 true,則冒號後面的被忽略。
如果冒號前為false,則拋出AssertionError , 錯誤信息內容為冒號後面的內容,上面程序執行結果就是列印:"程序錯誤"
(五)有關斷言的更多參數:
-ea java -ea 打開所有用戶類的assertion
-da java -da 關閉所有用戶類的assertion
-ea:<classname> java -ea:MyClass1 打開MyClass1的assertion
-da:<classname> java -da: MyClass1 關閉MyClass1的assertion
-ea:<packagename> java -ea:pkg1 打開pkg1包的assertion
-da:<packagename> java -da:pkg1 關閉pkg1包的assertion
-ea:... java -ea:... 打開預設包(無名包)的assertion
-da:... java -da:... 關敬簡閉預設包(無名包)的assertion
-ea:<packagename>... java -ea:pkg1... 打開pkg1包和其子包的assertion
-da:<packagename>... java -da:pkg1... 關閉pkg1包和其子包的assertion
-esa java -esa 打開系統類的assertion
-dsa java -dsa 關閉系統類的assertion
綜合使用 java -dsa:MyClass1:pkg1 關閉MyClass1和pkg1包的assertion
方案1:AT89S52,DS12887時鍾晶元,實踐通過,運行穩定。自己根據程序連接引腳。
LCD顯示的。
#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define LCDCOM XBYTE[0xcffc] //LCD寫命令寄存器地址
#define LCDDATA XBYTE[0xcffd] //LCD寫數據寄存器地址
#define LCDSTATUS XBYTE[0xcffe] //LCD讀狀態寄存器地址
#define DSA XBYTE[0x8f0a] //實時時鍾寄存器A
#define DSB XBYTE[0x8f0b] //實時時鍾寄存器B
#define DSC XBYTE[0x8f0c] //實時時鍾寄存器C
#define DSD XBYTE[0x8f0d] //實時時鍾寄存器D
#define SECOND XBYTE[0x8f05] //實時時鍾分報警
sbit bflag=ACC^7;
uchar idata dt[7]={06,7,11,17,05,0,2}; //時間初值
uchar at[7]={9,8,7,4,2,0,6}; //年,月,日,時,分,秒,星期時標寄存器地址
uchar xdata *addr=0x8f00; //實時時鍾片選地址
//函數的聲明部分
//void delay1(uint x);
void lcd_busy();
void lcd_cmd(uchar lcd_cmd);
void lcd_data(uchar lcd_data);
void lcd_moveto(uchar position);
void init(void);
//void delay( unsigned int number );
void init_ds(void); /模鏈/實時時鍾初始化
void WDS(void); //寫時標函數
void RDS(void); //讀時標函數
uchar ymd[10]={2,0,0,0,0,0,0,0,0,0}; //年月日
uchar hms[8]={0,0,0,0,0,0,0,0}; //時分秒
uchar weekday[3];
uchar code dis_buf[12]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x3a};
void init_ds(void) //實時時鍾初始化
{
DSA=0x2f; //選時鍾32.768kHz;中斷周期500ms
ACC=DSC; //清中斷請求喚大標志
ACC=DSD; //VRT=1;數據有效
DSB=0x7e; //中斷允許,時標值為二進制碼,24小旦鏈孫時制,晶元工作,方波輸出允許
}
void WDS(void) //寫時標函數
{
uchar i;
DSB=0x8e; //置SET位為1
DSB=0x8e;
for(i=0;i<7;i++)
{
*(addr+at[i])=dt[i]; //置時標初值
}
}
void RDS(void)
{
uchar i;
do
{
ACC=DSA;
}
while(bflag==1);
for(i=0;i<7;i++)
{
dt[i]=*(addr+at[i]);
}
}
void lcd_busy() //檢測lcd忙程序
{
do
{
ACC=LCDSTATUS;
}
while(bflag==1); //當他忙的時候就不停的檢測,直到空閑為止
}
void lcd_cmd(uchar lcd_cmd) //寫命令函數
{
LCDCOM=lcd_cmd;
lcd_busy();
}
void lcd_data(uchar lcd_data) //寫數據函數
{
LCDDATA=lcd_data;
lcd_busy();
}
void lcd_moveto(uchar position) //確定顯示位置
{
uchar temp; //為顯示位置對應的地址
if (position<16)
temp=(position+0x80-1); //為在第一行
else
temp=((position-16)+0xc0); //為第二行
lcd_cmd(temp);
}
void init(void) //lcd初始化
{
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x38); //置功能:2行,5*7字元
lcd_busy();
lcd_cmd(0x06); //置輸入模式:地址增量,顯示屏不移動
lcd_busy();
lcd_cmd(0x0c); //置顯示開,不顯示游標,游標不閃爍
lcd_busy();
lcd_cmd(0x01); //清顯示
lcd_busy();
}
void shizhong(void) //時鍾的每一位取出來
{
ymd[2]=dt[0]/10;
ymd[3]=dt[0]%10;
ymd[4]=10;
ymd[5]=dt[1]/10;
ymd[6]=dt[1]%10;
ymd[7]=10;
ymd[8]=dt[2]/10;
ymd[9]=dt[2]%10;
hms[0]=dt[3]/10;
hms[1]=dt[3]%10;
hms[2]=11;
hms[3]=dt[4]/10;
hms[4]=dt[4]%10;
hms[5]=11;
hms[6]=dt[5]/10;
hms[7]=dt[5]%10;
使用晶元:AT89S52,DS12887時鍾晶元,實踐通過,運行穩定。自己根據程序連接引腳。
#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define LCDCOM XBYTE[0xcffc] //LCD寫命令寄存器地址
#define LCDDATA XBYTE[0xcffd] //LCD寫數據寄存器地址
#define LCDSTATUS XBYTE[0xcffe] //LCD讀狀態寄存器地址
#define DSA XBYTE[0x8f0a] //實時時鍾寄存器A
#define DSB XBYTE[0x8f0b] //實時時鍾寄存器B
#define DSC XBYTE[0x8f0c] //實時時鍾寄存器C
#define DSD XBYTE[0x8f0d] //實時時鍾寄存器D
#define SECOND XBYTE[0x8f05] //實時時鍾分報警
sbit bflag=ACC^7;
uchar idata dt[7]={06,7,11,17,05,0,2}; //時間初值
uchar at[7]={9,8,7,4,2,0,6}; //年,月,日,時,分,秒,星期時標寄存器地址
uchar xdata *addr=0x8f00; //實時時鍾片選地址
//函數的聲明部分
//void delay1(uint x);
void lcd_busy();
void lcd_cmd(uchar lcd_cmd);
void lcd_data(uchar lcd_data);
void lcd_moveto(uchar position);
void init(void);
//void delay( unsigned int number );
void init_ds(void); //實時時鍾初始化
void WDS(void); //寫時標函數
void RDS(void); //讀時標函數
uchar ymd[10]={2,0,0,0,0,0,0,0,0,0}; //年月日
uchar hms[8]={0,0,0,0,0,0,0,0}; //時分秒
uchar weekday[3];
uchar code dis_buf[12]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x3a};
/*void delay1(uint x) //延時1ms程序
{
uchar j;
while(x--)
{
for(j=0;j<125;j++)
{;}
}
}
void delay( unsigned int number )
{
unsigned char i;
unsigned int u;
while(u<number)
{
for(i=0;i<=125;i++);
u++;
}
} */
void init_ds(void) //實時時鍾初始化
{
DSA=0x2f; //選時鍾32.768kHz;中斷周期500ms
ACC=DSC; //清中斷請求標志
ACC=DSD; //VRT=1;數據有效
DSB=0x7e; //中斷允許,時標值為二進制碼,24小時制,晶元工作,方波輸出允許
}
void WDS(void) //寫時標函數
{
uchar i;
DSB=0x8e; //置SET位為1
DSB=0x8e;
for(i=0;i<7;i++)
{
*(addr+at[i])=dt[i]; //置時標初值
}
}
void RDS(void)
{
uchar i;
do
{
ACC=DSA;
}
while(bflag==1);
for(i=0;i<7;i++)
{
dt[i]=*(addr+at[i]);
}
}
void lcd_busy() //檢測lcd忙程序
{
do
{
ACC=LCDSTATUS;
}
while(bflag==1); //當他忙的時候就不停的檢測,直到空閑為止
}
void lcd_cmd(uchar lcd_cmd) //寫命令函數
{
LCDCOM=lcd_cmd;
lcd_busy();
}
void lcd_data(uchar lcd_data) //寫數據函數
{
LCDDATA=lcd_data;
lcd_busy();
}
void lcd_moveto(uchar position) //確定顯示位置
{
uchar temp; //為顯示位置對應的地址
if (position<16)
temp=(position+0x80-1); //為在第一行
else
temp=((position-16)+0xc0); //為第二行
lcd_cmd(temp);
}
void init(void) //lcd初始化
{
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x38); //置功能:2行,5*7字元
lcd_busy();
lcd_cmd(0x06); //置輸入模式:地址增量,顯示屏不移動
lcd_busy();
lcd_cmd(0x0c); //置顯示開,不顯示游標,游標不閃爍
lcd_busy();
lcd_cmd(0x01); //清顯示
lcd_busy();
}
void shizhong(void) //時鍾的每一位取出來
{
ymd[2]=dt[0]/10;
ymd[3]=dt[0]%10;
ymd[4]=10;
ymd[5]=dt[1]/10;
ymd[6]=dt[1]%10;
ymd[7]=10;
ymd[8]=dt[2]/10;
ymd[9]=dt[2]%10;
hms[0]=dt[3]/10;
hms[1]=dt[3]%10;
hms[2]=11;
hms[3]=dt[4]/10;
hms[4]=dt[4]%10;
hms[5]=11;
hms[6]=dt[5]/10;
hms[7]=dt[5]%10;
switch(dt[6])
{
case 1:weekday[0]='m';weekday[1]='o';weekday[2]='n';break;
case 2:weekday[0]='t';weekday[1]='u';weekday[2]='e';break;
case 3:weekday[0]='w';weekday[1]='e';weekday[0]='n';break;
case 4:weekday[0]='t';weekday[1]='h';weekday[2]='u';break;
case 5:weekday[0]='f';weekday[1]='r';weekday[2]='i';break;
case 6:weekday[0]='s';weekday[1]='a';weekday[0]='t';break;
case 7:weekday[0]='s';weekday[1]='u';weekday[0]='n';break;
}
}
void main(void)
{
uchar i;
WDS();
init_ds();
init();
while(1)
{
RDS();
shizhong();
lcd_moveto(3);
for(i=0;i<10;i++)
{
lcd_data(dis_buf[ymd[i]]);
}
lcd_moveto(17);
for(i=0;i<8;i++)
{
lcd_data(dis_buf[hms[i]]);
}
lcd_data(0x20);
for(i=0;i<3;i++)
{
lcd_data(weekday[i]);
}
}
}
方案2:用內部的定時器做數字鍾,通過數碼管顯示出來
使用晶元:AT89S52,DS12887時鍾晶元,實踐通過,運行穩定。自己根據程序連接引腳。
#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define LCDCOM XBYTE[0xcffc] //LCD寫命令寄存器地址
#define LCDDATA XBYTE[0xcffd] //LCD寫數據寄存器地址
#define LCDSTATUS XBYTE[0xcffe] //LCD讀狀態寄存器地址
#define DSA XBYTE[0x8f0a] //實時時鍾寄存器A
#define DSB XBYTE[0x8f0b] //實時時鍾寄存器B
#define DSC XBYTE[0x8f0c] //實時時鍾寄存器C
#define DSD XBYTE[0x8f0d] //實時時鍾寄存器D
#define SECOND XBYTE[0x8f05] //實時時鍾分報警
sbit bflag=ACC^7;
uchar idata dt[7]={06,7,11,17,05,0,2}; //時間初值
uchar at[7]={9,8,7,4,2,0,6}; //年,月,日,時,分,秒,星期時標寄存器地址
uchar xdata *addr=0x8f00; //實時時鍾片選地址
//函數的聲明部分
//void delay1(uint x);
void lcd_busy();
void lcd_cmd(uchar lcd_cmd);
void lcd_data(uchar lcd_data);
void lcd_moveto(uchar position);
void init(void);
//void delay( unsigned int number );
void init_ds(void); //實時時鍾初始化
void WDS(void); //寫時標函數
void RDS(void); //讀時標函數
uchar ymd[10]={2,0,0,0,0,0,0,0,0,0}; //年月日
uchar hms[8]={0,0,0,0,0,0,0,0}; //時分秒
uchar weekday[3];
uchar code dis_buf[12]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x3a};
/*void delay1(uint x) //延時1ms程序
{
uchar j;
while(x--)
{
for(j=0;j<125;j++)
{;}
}
}
void delay( unsigned int number )
{
unsigned char i;
unsigned int u;
while(u<number)
{
for(i=0;i<=125;i++);
u++;
}
} */
void init_ds(void) //實時時鍾初始化
{
DSA=0x2f; //選時鍾32.768kHz;中斷周期500ms
ACC=DSC; //清中斷請求標志
ACC=DSD; //VRT=1;數據有效
DSB=0x7e; //中斷允許,時標值為二進制碼,24小時制,晶元工作,方波輸出允許
}
void WDS(void) //寫時標函數
{
uchar i;
DSB=0x8e; //置SET位為1
DSB=0x8e;
for(i=0;i<7;i++)
{
*(addr+at[i])=dt[i]; //置時標初值
}
}
void RDS(void)
{
uchar i;
do
{
ACC=DSA;
}
while(bflag==1);
for(i=0;i<7;i++)
{
dt[i]=*(addr+at[i]);
}
}
void lcd_busy() //檢測lcd忙程序
{
do
{
ACC=LCDSTATUS;
}
while(bflag==1); //當他忙的時候就不停的檢測,直到空閑為止
}
void lcd_cmd(uchar lcd_cmd) //寫命令函數
{
LCDCOM=lcd_cmd;
lcd_busy();
}
void lcd_data(uchar lcd_data) //寫數據函數
{
LCDDATA=lcd_data;
lcd_busy();
}
void lcd_moveto(uchar position) //確定顯示位置
{
uchar temp; //為顯示位置對應的地址
if (position<16)
temp=(position+0x80-1); //為在第一行
else
temp=((position-16)+0xc0); //為第二行
lcd_cmd(temp);
}
void init(void) //lcd初始化
{
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x30); //置功能:1行,5*7字元
lcd_busy();
lcd_cmd(0x38); //置功能:2行,5*7字元
lcd_busy();
lcd_cmd(0x06); //置輸入模式:地址增量,顯示屏不移動
lcd_busy();
lcd_cmd(0x0c); //置顯示開,不顯示游標,游標不閃爍
lcd_busy();
lcd_cmd(0x01); //清顯示
lcd_busy();
}
void shizhong(void) //時鍾的每一位取出來
{
ymd[2]=dt[0]/10;
ymd[3]=dt[0]%10;
ymd[4]=10;
ymd[5]=dt[1]/10;
ymd[6]=dt[1]%10;
ymd[7]=10;
ymd[8]=dt[2]/10;
ymd[9]=dt[2]%10;
hms[0]=dt[3]/10;
hms[1]=dt[3]%10;
hms[2]=11;
hms[3]=dt[4]/10;
hms[4]=dt[4]%10;
hms[5]=11;
hms[6]=dt[5]/10;
hms[7]=dt[5]%10;
switch(dt[6])
{
case 1:weekday[0]='m';weekday[1]='o';weekday[2]='n';break;
case 2:weekday[0]='t';weekday[1]='u';weekday[2]='e';break;
case 3:weekday[0]='w';weekday[1]='e';weekday[0]='n';break;
case 4:weekday[0]='t';weekday[1]='h';weekday[2]='u';break;
case 5:weekday[0]='f';weekday[1]='r';weekday[2]='i';break;
case 6:weekday[0]='s';weekday[1]='a';weekday[0]='t';break;
case 7:weekday[0]='s';weekday[1]='u';weekday[0]='n';break;
}
}
void main(void)
{
uchar i;
WDS();
init_ds();
init();
while(1)
{
RDS();
shizhong();
lcd_moveto(3);
for(i=0;i<10;i++)
{
lcd_data(dis_buf[ymd[i]]);
}
lcd_moveto(17);
for(i=0;i<8;i++)
{
lcd_data(dis_buf[hms[i]]);
}
lcd_data(0x20);
for(i=0;i<3;i++)
{
lcd_data(weekday[i]);
}
}
}
再給一個:用內部的定時器做數字鍾,通過數碼管顯示出來。
#include <regx52.h>
#define uchar unsigned char
#define uint unsigned int
uchar dispcode[]={ 0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00}; //定義0到F的段選碼
uchar dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f}; //8位數碼管的位選碼
uchar dispbuf[8]={ 0,0,16,0,0,16,0,0}; //定義一個緩沖區
uchar dispbitcnt;
uchar second;
uchar minite;
uchar hour;
uint tcnt;
uchar mstcnt;
uchar i,j;
void main(void)
{
TMOD=0x02; //定時器0工作方式2
TH0=0x06; //每250us中斷一次
TL0=0x06;
TR0=1; //啟動定時器0
ET0=1; //定時器0中斷允許
EA=1; //CPU開中斷
while(1)
{
if(P0_0==0)
{ for(i=5;i>0;i--)
for(j=248;j>0;j--); //延時檢查是否是P0_0被按下
if(P0_0==0) //如果被按下
{
second++; //秒就加1
if (second==60)
{
second=0;
}
dispbuf[0] =second%10; //存放秒的個位
dispbuf[1] =second/10; //存放秒的十位
while (P0_0==0); //等待P0_0變高
}
}
if(P0_1==0)
{ for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_1==0)
{
minite++;
if (minite==60)
{
minite=0;
}
dispbuf[3] =minite%10;
dispbuf[4] =minite/10;
while (P0_1==0);
} }
if(P0_2==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--);
if(P0_2==0)
{
hour++;
if(hour==24)
{
hour=0;
}
dispbuf[6] =hour%10;
dispbuf[7] =hour/10;
while (P0_2==0);
} } } }
void t0 (void) interrupt 1 using 0 //定時器0中斷服務程序
{
P1=dispcode[dispbuf[dispbitcnt]]; //為位選碼
P3=dispbitcode[dispbitcnt]; //為段選碼
dispbitcnt++;
if(dispbitcnt==8)
{
dispbitcnt=0;
}
tcnt++;
if(tcnt==4000) //此時有一秒鍾了(4000*250us)
{
tcnt=0;
second++;
if(second==60)
{
second=0;
minite++;
if(minite==60)
{
minite=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
dispbuf[0]=second%10;
dispbuf[1]=second/10;
dispbuf[3]=minite%10;
dispbuf[4]=minite/10;
dispbuf[6]=hour%10;
dispbuf[7]=hour/10;
}
}
註:至於你說的蜂鳴器,這個很簡單,在程序里設置一個標志位
sbit busy_louder 在硬體連接上採用一個放大器 與單片機的一個引腳相接 即時到60秒時,計時器清零,同時標志位置位,即可~
希望對你有幫助。
⑶ 汽車導航包編程翻譯,謝謝
globalsettings
吧= 0
quitondoubleclick =不
x = 0
Y = 0
寬度= 800
高度= 480
安排=不
backgroundbitmap = \科帕奇1.bmp ..
startupanimation = noanimation
加速=是的
上面的=不
###############################################################
#
#頂行顯示內容的liwh
#
###############################################################
#電池
# x = 720
# Y = 0
#寬度= 50
#高度= 25
# colorbattery = e4e4e4
# colorcritical =見
# colorlow = ff8000c
# colorhigh = 0fff00
###############################################################
#
#第一行圖標的liwh
#
###############################################################
iconxpbutton
x = 558
Y = 410
命令= \ \ \ dsa.exe DSA SDMMC盤
sizenormal = 64
sizepushed = 64
scalealpha = 100
iconnormal = .. \ \ dsaok.ico圖標
scalealpha = 60
iconpushed = .. \ \ dsaok.ico圖標
# ---------------------------------
iconxpbutton
x = 622
Y = 410
命令= \ \ \ gpsapp.exe gpsapp SDMMC盤
sizenormal = 64
sizepushed = 64
scalealpha = 100
iconnormal = .. \ \媒體播放ICO圖標
scalealpha = 60
iconpushed = .. \ \媒體播放ICO圖標
# ---------------------------------
###############################################################
#
#第二行圖標的liwh
#
###############################################################
# ---------------------------------
iconxpbutton
x = 686
Y = 410
命令= \ \ \ \ shnnavi.exe residentflash新科導航
sizenormal = 64
sizepushed = 64
scalealpha = 100
iconnormal = .. \ \新科ok.ico圖標
scalealpha = 60
iconpushed = .. \ \新科ok.ico圖標
# quitonexecute =是的
###############################################################
#
#底行圖標的liwh
#
###############################################################
iconxpbutton
x = 2
Y = 416
newini = \導航\ navi3.ini ..
sizenormal = 48
sizepushed = 48
scalealpha = 100
iconnormal = .. \ \ 128.ico圖標
scalealpha = 60
iconpushed = .. \ \ 128.ico圖標
shutdownanimation = noanimation
# shutdownanimation =飛吧
# --------------------------------
iconxpbutton
x = 750
Y = 416
newini = \導航\ navi5.ini ..
sizenormal = 48
sizepushed = 48
scalealpha = 100
iconnormal = .. \ \ 128.ico圖標
scalealpha = 60
iconpushed = .. \ \ 128.ico圖標
shutdownanimation = noanimation
# shutdownanimation =飛吧
⑷ Java編程常見面試題目,要求正確答案
1.
final關鍵字,修飾類,方法,或者成員變數為最終的,使其不可被修改
finally可跟在try catch語句或者try語句後使用,表示這個方法一定會被執行
finalize通知垃圾回收機制回收被finalize標示的對象,但不保證馬上就會執行
2.
可以繼承也可以實現介面
由於構造方法必須與類型一致,所以其沒有構造方法,繼承有參構造方法必須調用父類的
直接new interface就是實現介面
3.
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。
Java內部類與C++嵌套類最大的不 同就在於是否有指向外部的引用上
4.
&&短路與,當兩個條件,如a>b&&b>c,中a>b為假時b>c這個語句不會被執行而直接返回false
&兩個條件都會被執行
5.
最重要區別是hashtable是線程安全的(同步)而hashMap不是。。
6.
Collection 層次結構中的根介面,而Collections是一個工具類,它包含有各種有關集合操作的靜態方法
7.
系統測試的時候
8.
垃圾回收機制,因為java不能手動清理內存,而內存不清理系統資源會被耗盡,所以要有GC
9.
兩個,String pool一個"xyz",堆裡面一個String 對象
10.
11 -11
11.
s1+1,s1自動轉換成int類型,其結果返回一個int,所以報錯
12.
sleep在睡眠一段時間後會自己醒來,而wait不能,它必須別的線程喚醒它(notify或者notifyAll)
13.
java有標簽但是沒goto
14.
數組沒length()方法只有length這個屬性,String有
15.
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
16.
用equals ==只判斷內存地址是否一致,而equals判斷是否引用的是同一個對象
17.
IndexOutOfBoundsException 數組越界
NullPointerException 空指針異常
SystemException 系統異常
18.
error表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況
19.
List,Set是 Map不是
20.
abstract class可以有實現方法interface不能
21.
都不能
22.
都可以
23.
start()
24.
可以
25.
不可以,String 是final
26.
不能
27.
會,先執行finally里的,再return
28.
2<<3
29.
如果不重寫方法是不可以,但是重寫了就難說
30.
引用
31.
byte可以,因為其可以自動轉換成int類型,其他都不可以
32.
public class Singleton
{
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
⑸ java編程一個AES加密txt文件的程序,其中AES解密文件的方法出錯,求大神搭救
你是對文件內容加的密,應該和文件類型無關把。如果用的是
AES演算法加的密的話,初始化的時候就會寫到
keygen = KeyGenerator.getInstance("AES");
//生成密鑰
deskey = keygen.generateKey();
//生成Cipher對象,指定其支持的DES演算法
c = Cipher.getInstance("AES");
加密和解密的過程幾乎是一樣的,AES是對稱加密方式,你看看加密和解密方法里的有沒有寫錯的地方。
⑹ dsaa是什麼計算機課
這個計算機的話,這個應該是一個講編程的一個計算機課,然後這個課程也是非常簡單的。
⑺ dsaa是什麼課
dsaa是計算機知識中的一門編程課。
編程是編定程序的中文簡稱,就是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得昌虛到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
在計算臘帆機系統中,一條機器指令規定了計算機系統的一個特定動作。一個系列的計算機在硬體輪迅雹設計製造時就用了若干指令規定了該系列計算機能夠進行的基本操作,這些指令一起構成了該系列計算機的指令系統。
⑻ java的API中有哪些常用的包
Application Programming Interface 應用程序編程介面,Java的api就多的數不清了,平時編程用的都是API。
⑼ c語言編程題,急急急!!!!
/*
數入字元串:123asd
反轉後:dsa321
Press any key to continue
*/
#include<stdio.h>
#defineMAXlen100
intlength(char*s){
intlen=0;
while(s[len])++len;
returnlen;
}
voidconvert(char*s){
inti,len=length(s);
charch;
for(i=0;i<len/2;++i){
ch=s[i];
s[i]=s[len-1-i];
s[len-1-i]=ch;
}
}
intmain(){
charstr[MAXlen];
printf("數入字元串:");
gets(str);
convert(str);
printf("反轉後:%s ",str);
return0;
}