import java.awt.*;//計(jì)算器實(shí)例
遂昌ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
import java.awt.event.*;
public class calculator
{
public static void main(String args[])
{
MyWindow my=new MyWindow("計(jì)算器");
}
}
class MyWindow extends Frame implements ActionListener
{ StringBuffer m=new StringBuffer();
int p;
TextField tex;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,jia,jian,cheng,chu,deng,dian,qingling,kaifang;
MyWindow(String s)
{
super(s);
//StringBuffer s2=new StringBuffer();
//String s;
tex=new TextField(18);
b0=new Button(" 0 ");
b1=new Button(" 1 ");
b2=new Button(" 2 ");
b3=new Button(" 3 ");
b4=new Button(" 4 ");
b5=new Button(" 5 ");
b6=new Button(" 6 ");
b7=new Button(" 7 ");
b8=new Button(" 8 ");
b9=new Button(" 9 ");
dian=new Button(" . ");
jia=new Button(" + ");
jian=new Button(" - ");
cheng=new Button(" × ");
chu=new Button(" / ");
deng=new Button(" = ");
qingling=new Button(" 清零 ");
kaifang=new Button(" √ ");
setLayout(new FlowLayout());
add(tex);
add(b0);
add(b1);
add(b2);
add(b3);
add(b4);
add(b5);
add(b6);
add(b7);
add(b8);
add(b9);
add(dian);
add(jia);
add(jian);
add(cheng);
add(chu);
add(kaifang);
add(qingling);
add(deng);
b0.addActionListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
jia.addActionListener(this);
jian.addActionListener(this);
cheng.addActionListener(this);
chu.addActionListener(this);
dian.addActionListener(this);
deng.addActionListener(this);
qingling.addActionListener(this);
kaifang.addActionListener(this);
setBounds(200,200,160,280);
setResizable(false);//不可改變大小
setVisible(true);
validate();
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent ee)
{ System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b0)
{
m=m.append("0");
tex.setText(String.valueOf(m));
}
if(e.getSource()==b1)
{
m=m.append("1"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b2)
{
m=m.append("2"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b3)
{
m=m.append("3"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b4)
{
m=m.append("4"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b5)
{
m=m.append("5"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b6)
{
m=m.append("6"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b7)
{
m=m.append("7"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b8)
{
m=m.append("8"); tex.setText(String.valueOf(m));
}
if(e.getSource()==b9)
{
m=m.append("9"); tex.setText(String.valueOf(m));
}
if(e.getSource()==jia)
{
m=m.append("+"); tex.setText(String.valueOf(m));
}
if(e.getSource()==jian)
{
m=m.append("-"); tex.setText(String.valueOf(m));
}
if(e.getSource()==cheng)
{
m=m.append("*"); tex.setText(String.valueOf(m));
}
if(e.getSource()==chu)
{
m=m.append("/"); tex.setText(String.valueOf(m));
}
if(e.getSource()==dian)
{
m=m.append("."); tex.setText(String.valueOf(m));
}
String mm=String.valueOf(m);
int p1=mm.indexOf("+");
int p2=mm.indexOf("-");
int p3=mm.indexOf("*");
int p4=mm.indexOf("/");
if(p1!=-1)
{
p=p1;
}
else if(p3!=-1)
{
p=p3;
}
else if(p2!=-1)
{
p=p2;
}
else if(p4!=-1)
{
p=p4;
}
if(e.getSource()==deng)
{
String m1=mm.substring(0,p);
String m2=mm.substring(p+1);
String ch=mm.substring(p,p+1);
//System.out.println(m1);
//System.out.println(m2);
//System.out.println(ch);
if(ch.equals("+"))
{
float n1=Float.parseFloat(m1);
float n2=Float.parseFloat(m2);
float sum=n1+n2;
String su=String.valueOf(sum);
tex.setText(su);
}
if(ch.equals("-"))
{
float n1=Float.parseFloat(m1);
float n2=Float.parseFloat(m2);
float sum=n1-n2;
String su=String.valueOf(sum);
tex.setText(su);
}
if(ch.equals("*"))
{
float n1=Float.parseFloat(m1);
float n2=Float.parseFloat(m2);
float sum=n1*n2;
String su=String.valueOf(sum);
tex.setText(su);
}
if(ch.equals("/"))
{
float n1=Float.parseFloat(m1);
float n2=Float.parseFloat(m2);
float sum=n1/n2;
String su=String.valueOf(sum);
tex.setText(su);
}
}
if(e.getSource()==qingling)
{StringBuffer kk=new StringBuffer();
m=kk;
tex.setText("0");
// System.out.println(mm);
}
if(e.getSource()==kaifang)
{
String t=tex.getText();
float num=Float.parseFloat(t);
double nub=Math.sqrt(num);
tex.setText(String.valueOf(nub));
}
}
}
久雅科技面試題 【JAVA軟件工程師】
1、基本集合類有哪些,各自的特點(diǎn)?
集合類型主要有3種:set(集)、list(列表)和map(映射)。
List 關(guān)心的是索引,與其他集合相比,List特有的就是和索引相關(guān)的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。
Set關(guān)心唯一性,它不允許重復(fù)。
Map關(guān)心的是唯一的標(biāo)識(shí)符。他將唯一的鍵映射到某個(gè)元素。當(dāng)然鍵和值都是對(duì)象。
2、下面代碼的運(yùn)行結(jié)果:(A)
public class Foo {
public static void main(String[] args) {
String s;
String.out.println("s="+s);
}
}
A.由于String s沒(méi)有初始化,代碼不能編譯通過(guò) B.代碼得到編譯,輸出結(jié)果為"s="
C.代碼得到編譯,并輸出"s=null" D.代碼得到編譯,但捕獲到NullPointException異常
3、請(qǐng)說(shuō)明equal和==的區(qū)別。
int i=1;int j=1;
在一個(gè)判斷條件中使用i==j是否為true?
如果i和j是integer呢?
==操作比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量在堆中存儲(chǔ)的地址是否相同,即棧中的內(nèi)容是否相同。
equals操作表示的兩個(gè)變量是否是對(duì)同一個(gè)對(duì)象的引用,即堆中的內(nèi)容是否相同。
==比較的是2個(gè)對(duì)象的地址,而equals比較的是2個(gè)對(duì)象的內(nèi)容。
4、編寫一個(gè)方法用于奇偶數(shù)判定。
int num=0;
System.out.println("請(qǐng)輸入一個(gè)整數(shù):");
Scanner inputScanner=new Scanner(System.in);
num=inputScanner.nextInt();
if(num%2==0){
System.out.println(num+"為偶數(shù)");
}else{
System.out.println(num+"為奇數(shù)");
}
5、以下這段代碼是否正確:
String[] name={"tom","dick","harry"};
for(i=0;i=name.length;i++){
System.out.print(name[i]+'\n');
}
這段代碼錯(cuò)誤,會(huì)觸發(fā)“ArrayIndexOutOfBoundsException”異常,這是代碼在嘗試訪問(wèn)不在數(shù)組的索引取值范圍內(nèi)的元素時(shí)會(huì)顯示的運(yùn)行時(shí)錯(cuò)誤消息。
6、以下兩個(gè)打印,分別輸出什么結(jié)果:
double amount1=2.0;
double amount2=1.1;
double amount3=0.9;
System.out.println(amount1-amount2==amount3);
BigDecimal damount1=newBigDecimal("2.0");
BigDecimal damount2=newBigDecimal("1.1");
BigDecimal damount3=newBigDecimal("0.9");
System.out.println(damount1.subtract(damount2).equals(damount3));
7、jsp和servlet有何區(qū)別?
jsp在本質(zhì)上就是servlet但是兩者的創(chuàng)建方式不一樣。
servlet完全是Java程序代碼構(gòu)成擅長(zhǎng)于流程控制和事務(wù)處理,而通過(guò)jsp來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè);jsp由HTML代碼和JSP標(biāo)簽構(gòu)成,可以方便地編寫動(dòng)態(tài)網(wǎng)頁(yè)。
因此在實(shí)際應(yīng)用中采用servlet來(lái)控制業(yè)務(wù)流程,而采用JSP來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè)。在struts框架中,jsp位于MVC設(shè)計(jì)模式的視圖層,而servlet位于控制層。
8、以下說(shuō)法錯(cuò)誤的是?(A)
A.session存在服務(wù)器,cookie存在硬盤
B.session機(jī)制采用的是服務(wù)器端保持狀態(tài),但是在應(yīng)用過(guò)程中借助于cookie機(jī)制來(lái)達(dá)到保存標(biāo)識(shí)的目的,從而實(shí)現(xiàn)用戶登錄
C.cookie只與你的主機(jī)(域)有關(guān),與select和jsp頁(yè)面無(wú)關(guān)
D.cookie中不能直接存取java對(duì)象,session中可以存對(duì)象
9、下面關(guān)于forward和redirect的描述,不正確的是?(D)
A.執(zhí)行forward時(shí),瀏覽器不知道服務(wù)器發(fā)送的內(nèi)容從何而來(lái),地址欄還是原來(lái)的地址
B.執(zhí)行forward時(shí),服務(wù)器端告訴瀏覽器重新去請(qǐng)求地址
C.forward是內(nèi)部重定向,redirect是外部重定向
D.forward是服務(wù)器將控制權(quán)轉(zhuǎn)交給另一個(gè)內(nèi)部服務(wù)器對(duì)象,由新的對(duì)象來(lái)全權(quán)負(fù)責(zé)響應(yīng)用戶的請(qǐng)求
10、http請(qǐng)求中,get和post的區(qū)別?
(1)get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。 在客戶端,Get方式在通過(guò)URL提交數(shù)據(jù),數(shù)據(jù)在URL中可以看到;POST方式,數(shù)據(jù)放置在HTML HEADER內(nèi)提交。
(2)對(duì)于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對(duì)于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
(3) GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒(méi)有此限制。
(4)安全性問(wèn)題。正如在(1)中提到,使用 Get 的時(shí)候,參數(shù)會(huì)顯示在地址欄上,而 Post 不會(huì)。所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用 get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用 post為好。
11、Spring和Hibernate整合過(guò)程中各對(duì)象(BO為業(yè)務(wù)模型)注入的順序是?(C)
A.DateSource-SessionFactory-Biz-DAO B.SessionFactory-DateSource-DAO-BO
C.DateSource-SessionFactory-DAO-BO D.SessionFactory-DateSource-Biz-DAO
12、所有通過(guò)英語(yǔ)六級(jí)考試的學(xué)生都參加了學(xué)校的英語(yǔ)俱樂(lè)部,王進(jìn)參加了英語(yǔ)俱樂(lè)部,所以他一定通過(guò)了英語(yǔ)六級(jí)考試。以下哪項(xiàng)最好的指出了上述論證的邏輯錯(cuò)誤?(C)
A.部分通過(guò)英語(yǔ)六級(jí)考試的學(xué)生沒(méi)有參加英語(yǔ)俱樂(lè)部
B.王進(jìn)參加英語(yǔ)俱樂(lè)部是因?yàn)樗霞尤刖銟?lè)部的基本條件
C.有些參加英語(yǔ)俱樂(lè)部的學(xué)生還沒(méi)有通過(guò)英語(yǔ)六級(jí)考試
D.王進(jìn)曾經(jīng)獲得過(guò)年級(jí)英語(yǔ)演講比賽第一名
13、Spring實(shí)現(xiàn)ioc是基于何種底層java技術(shù)?
基于java的反射機(jī)制 , 在spring初始化的時(shí)候 , 初始化所有bean , 然后在應(yīng)用程序需要的時(shí)候 , 通過(guò)反射機(jī)制來(lái)獲取。
14、為什么有時(shí)需要連接池?列出一個(gè)連接池的實(shí)例,舉例說(shuō)明使用連接池的好處。
使用連接池是為了提升操作數(shù)據(jù)庫(kù)的效率,使用連接池就好比一些東西已經(jīng)造好等著你來(lái)用就行了,不使用連接池就像是你在用他們之前還要先造好然后再拿去用,這比不用連接池要耗費(fèi)更多的時(shí)間。
package test;
import java.sql.*;
import java.util.*;
public class DBConnpool
{
private int inUse = 0;
private VectorConnection connections = new VectorConnection();
private String poolname = "dbconnpool";
private String dbid = "jdbc:mysql://localhost:3306/teasystem";
private String drivername = "com.mysql.jdbc.Driver";
private String username = "root";
private String password = "123";
private int maxconn = 5000;
public DBConnpool(){ }
public void setdbid(String dbid)
{ this.dbid = dbid; }
public void setusername(String username)
{ this.username = username; }
public void setpassword(String password)
{ this.password = password; }
public void setmaxconn(int maxconn)
{ this.maxconn = maxconn; }
public String getdbid()
{ return dbid; }
public String getusername()
{ return username; }
public String getpassword()
{ return password; }
public int getmaxconn()
{ return maxconn; }
//將連接返還給連接池
public synchronized void reConnection(Connection conn)
{ Connection con = conn;
connections.addElement(con);
inUse--;
}
//從連接池獲取一個(gè)連接
public synchronized Connection getConnection()
{
Connection con = null;
if(connections.size()0)
{
con = (Connection)connections.elementAt(0);
connections.removeElementAt(0);
try{
if(con.isClosed())
{ con = getConnection(); }
}catch(Exception e){
e.printStackTrace();
}
}else if(maxconn == 0||inUsemaxconn)
{ con = newConnection(); }
if(con != null)
{ inUse++; }
return con;
}
private Connection newConnection()
{
Connection con = null;
try{
Class.forName(drivername);
con = DriverManager.getConnection(dbid,username,password);
}catch(Exception e){
e.printStackTrace();
return null;
}
return con;
}
public synchronized void closeConn()
{
Enumeration allConnections = connections.elements();
while(allConnections.hasMoreElements())
{
Connection con = (Connection)allConnections.nextElement();
try{
con.close();
}catch(SQLException e){
e.printStackTrace();
} } } }
使用連接池,把暫時(shí)不使用的鏈接放入連接池,到需要使用的時(shí)候,從連接池中取出鏈接使用。
15、以下給定的數(shù)組,如何最簡(jiǎn)單的把每個(gè)值都打印出來(lái)?
String[] arry=new String[]{"john","Marry","Bob"};
System.out.println(Array.toString(arry));
16、java項(xiàng)目中引入了一個(gè)第三方庫(kù),運(yùn)行到某段代碼過(guò)程中拋出NoClassDefFoundError或NoSuchMethodError,這個(gè)問(wèn)題如何產(chǎn)生的,你如何解決這個(gè)問(wèn)題?
17、有一個(gè)字符串需要判斷,條件如下:必須有至少1位數(shù)字,有1位字母,10位以上。你用何種技術(shù)實(shí)現(xiàn)這種判斷?
if(/^\d+$/.test(str)) { 全為數(shù)字,執(zhí)行... }當(dāng)然你也可以用isNaN來(lái)判斷if(isNaN(str)){ str是個(gè)數(shù)字,執(zhí)行...}
18、Chrome瀏覽器用于調(diào)試的快捷鍵是什么?
F12
19、Chrome瀏覽器調(diào)試面板中,Elemets,Network,Resources分別是什么用途?
Elements 是頁(yè)面html元素,
Network 是頁(yè)面加載的時(shí)候網(wǎng)絡(luò)資源加載情況
Resource 是網(wǎng)站的網(wǎng)頁(yè)資源文件,包括css、js等
20、Eclipse中,讓一個(gè)java程序看起來(lái)更易讀的快捷鍵是什么?
Ctrl+Shift+F
21、簡(jiǎn)單說(shuō)說(shuō)什么是stack trace。
stack trace叫做堆棧軌跡:如果你需要打印出某個(gè)時(shí)間的調(diào)用堆棧狀態(tài),你將產(chǎn)生一個(gè)堆棧軌跡。
stack trace 中包括三部分,分別為:.bss .text .data
bss: 表示程序中未初始化的全局變量的一塊內(nèi)存區(qū)域
text: 表示程序中已初始化的全局變量的一塊內(nèi)存區(qū)域
data:表示存放程序執(zhí)行代碼的一塊內(nèi)存區(qū)域
你要在這個(gè)類中寫一個(gè)main函數(shù)才可以運(yùn)行程序
public static void main(String[] args) {
xuanzechengshi x = new xuanzechengshi();
x.selectCity();
}
把xuanzejingdian類及相關(guān)的代碼注釋掉就可運(yùn)行
具體方法如下:
1、定義封裝一條記錄的實(shí)體類
2、根據(jù)實(shí)際系統(tǒng)容量,定義一個(gè)數(shù)組
3、完成系統(tǒng)中顯示全部記錄的邏輯
4、完成系統(tǒng)中添加一條記錄的邏輯
5、完成系統(tǒng)中刪除一條記錄的邏輯
6、完成系統(tǒng)中修改一條記錄的邏輯
7、全部代碼:
import java.util.Scanner;
class Contact {
String cellPhone;
String name;
}
public class Main {
private static void menu () {
System.out.println("************** 菜單 ******"
+ "************");
System.out.println(" 1.顯示全部通訊錄");
System.out.println(" 2.增加一條記錄");
System.out.println(" 3.刪除一條記錄");
System.out.println(" 4.修改一條記錄");
System.out.println(" 0.退出");
}
public static void main(String[] args) {
Scanner scn = new Scanner(System.in);
Contact[] contacts = new Contact[200];
int size = 0;
String cmd = "";
do {
menu();
System.out.print("請(qǐng)輸入你得選擇:(0-4)");
cmd = scn.nextLine();
if (cmd.equals("1")) {
if (size == 0)
System.out.println("系統(tǒng)當(dāng)前無(wú)記錄!");
else
for (int i = 0; i size; i++) {
System.out.println(contacts[i].name + ":"
+ contacts[i].cellPhone);
}
} else if (cmd.equals("2")) {
System.out.print("請(qǐng)輸入手機(jī)號(hào):");
String cellphone = scn.nextLine();
System.out.print("請(qǐng)輸入姓名:");
String name = scn.nextLine();
Contact contact = new Contact();
contact.cellPhone = cellphone;
contact.name = name;
if (size contacts.length) {
contacts[size++] = contact;
System.out.println("添加成功!");
} else {
System.out.println("你最多只能添加" +
contacts.length + "條記錄");
}
} else if (cmd.equals("3")) {
System.out.print("請(qǐng)輸入要?jiǎng)h除的手機(jī)號(hào):");
String cellphone = scn.nextLine();
int index = -1;
for (int i = 0; i size i contacts.length;
i++) {
if (contacts[i].cellPhone.equals(cellphone)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("該記錄不存在!");
} else {
for (int i = index; i size; i++) {
contacts[index] = contacts[index + 1];
}
contacts[size - 1] = null;
size--;
System.out.println("刪除成功!");
}
} else if (cmd.equals("4")) {
System.out.print("請(qǐng)輸入要修改的手機(jī)號(hào):");
String cellphone = scn.nextLine();
int index = -1;
for (int i = 0; i size i contacts.length;
i++) {
if (contacts[i].cellPhone.equals(cellphone)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("該記錄不存在!");
} else {
System.out.print("請(qǐng)輸入姓名:");
String name = scn.nextLine();
contacts[index].name = name;
}
}
} while (!cmd.equals("0"));
System.out.println("退出成功!");
scn.close();
System.exit(0);
}
}
上海的Java培訓(xùn)機(jī)構(gòu)【達(dá)內(nèi)教育】好。該機(jī)構(gòu)推出“因材施教、分級(jí)培優(yōu)”創(chuàng)新教學(xué)模式,同一課程方向,面向不同受眾群體,提供就業(yè)、培優(yōu)、才高三個(gè)級(jí)別教學(xué)課程。
【達(dá)內(nèi)教育】入學(xué)就會(huì)進(jìn)行考核,每個(gè)課程階段都會(huì)進(jìn)行考試,并進(jìn)行全國(guó)排名,加強(qiáng)緊迫性,保障學(xué)員對(duì)知識(shí)的掌握與吸收。在線答疑,并且每天助教進(jìn)行學(xué)習(xí)提醒,督促學(xué)員學(xué)習(xí),保障學(xué)習(xí)進(jìn)度,避免落后。授課教師在線直播,雙師強(qiáng)化效果。在線直播串講,解決學(xué)員共性問(wèn)題及學(xué)習(xí)難點(diǎn)。就業(yè)服務(wù),培養(yǎng)職業(yè)素養(yǎng):消除平臺(tái)限制,與直播講師互動(dòng),加強(qiáng)學(xué)習(xí)興趣。感興趣的話點(diǎn)擊此處,免費(fèi)學(xué)習(xí)一下
想了解更多有關(guān)Java培訓(xùn)機(jī)構(gòu)的相關(guān)信息,推薦咨詢【達(dá)內(nèi)教育】。該機(jī)構(gòu)是引領(lǐng)行業(yè)的職業(yè)教育公司,致力于面向IT互聯(lián)網(wǎng)行業(yè)培養(yǎng)人才,達(dá)內(nèi)大型T專場(chǎng)招聘會(huì)每年定期舉行,為學(xué)員搭建快捷高效的雙選綠色通道,在提升學(xué)員的面試能力、積累面試經(jīng)驗(yàn)同時(shí)也幫助不同技術(shù)方向的達(dá)內(nèi)學(xué)員快速就業(yè)。達(dá)內(nèi)IT培訓(xùn)機(jī)構(gòu),試聽名額限時(shí)搶購(gòu)。