`
yongzehanson
  • 浏览: 12459 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

java基础1

    博客分类:
  • java
阅读更多

1、作用域public,private,protected,以及不写时的区别
答:区别如下:
作用域:   当前类 , 同一package ,  子孙类 ,  其他package
public  √ √ √ √           
//
能被所有类访问
protected  √ √ √ ×         //本类和其子类访问, 同一包中的所有类访问
friendly  √ √ × ×          //可以被本类和同一包中的的其他类访问
private  √ × × ×           //只能在本类中访问
不写时默认为friendly

2
ArrayListVector的区别,   HashMapHashtable的区别
答: ArrayListVector主要从二方面来说.
.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的
.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

HashMapHashTable主要从三方面来说。
.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMapJava 1.2引进的Map接口的一个实现
.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的
.值:只有HashMap可以让你将空值作为一个表的条目的keyvalue

3
char型变量中能不能存贮一个中文汉字?为什么?
答: 是能够定义成为一个中文的,因为java中以unicode编码,一个char16个字节,所以放一个中文是没问题的

4
、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答: 多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,  waitnotify

5
、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
:父类:
package test;
public class FatherClass
{
public FatherClass()
{
System.out.println("FatherClass Create");
}
}
子类:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass
{
public ChildClass()
{
System.out.println("ChildClass Create");
}
public static void main(String[] args)
{
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
输出结果:
C:\>java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create

6
、内部类的实现方式?
答:示例代码如下:
package test;
public class OuterClass
{
private class InterClass
{
public InterClass()
{
System.out.println("InterClass Create");
}
}
public OuterClass()
{
InterClass ic = new InterClass();
System.out.println("OuterClass Create");
}
public static void main(String[] args)
{
OuterClass oc = new OuterClass();
}
}
输出结果:
C:\>java test/OuterClass
InterClass Create
OuterClass Create

 

再一个例题:
public class OuterClass {
private
double d1 = 1.0;
//insert code here
}
You need to insert an inner class declaration at line 3. Which two inner class declarations are
valid?(Choose two.)


A. class InnerOne{          //.
静态内部类可以有静态成员,而非静态内部类则不能有静态成员
public
static double methoda() {return d1;}
}
B. public class InnerOne{     //.
静态内部类可以有静态成员,而非静态内部类则不能有静态成员
static double methoda() {return d1;}
}
C. private class InnerOne{
double methoda() {return d1;}
}
D.
static
class InnerOne{
protected double methoda() {
return d1;}    //
静态内部类的非静态成员不可访问外部类的非静态变量
}
E. abstract class InnerOne{
public abstract double methoda();
}
说明如下:
.静态内部类可以有静态成员,而非静态内部类则不能有静态成员 AB
.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量return d1 出错, D
.非静态内部类的非静态成员可以访问外部类的非静态变量 C 正确
.答案为CE

7
、垃圾回收机制,如何优化程序?
 
:  结束方法 finalize() 可以用来帮助优化对象,该方法在释放对象时被子引用,它是 java 中为了有效地进行垃圾收集而引入的一个特殊方法, finalize() 方法属于 java.lang.Object 的系统类方法,它能被所有类访问, 当一个对象实例已经完全没有被任何变量引用时,则可以对它进行垃圾收集标记,在进行垃圾收集之前,系统将自动调用对象的 finalize() 方法,释放对象实例所占用的系统资源.

 
8
floatfloat f=3.4是否正确?
:   不正确。精度不准确,  应该用强制类型转换,如下所示:float f=(float)3.4

9
、介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)?
答:  Collection FrameWork如下:
Collection
List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
Set
Map

Hashtable
HashMap
WeakHashMap
Collection
是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements
Map
提供keyvalue的映射

10
Java中异常处理机制,事件机制?

 
11
JAVA中的多形与继承?
希望大家补上,谢谢

12
、抽象类与接口?
答:  抽象类与接口都用于抽象,但是抽象类(JAVA)可以有自己的部分实现,而接口则完全是一个标识 (同时有多重继承的功能)

13
Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示?
:   Server端程序:
package test;
import java.net.*;
import java.io.*;

public class Server
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public Server()
{
try
{
ss=new ServerSocket(10000);
while(true)
{
socket = ss.accept();
String RemoteIP = socket.getInetAddress().getHostAddress();
String RemotePort = ":"+socket.getLocalPort();
System.out.println("A client come in!IP:"+RemoteIP+RemotePort);
in = new BufferedReader(new  InputStreamReader(socket.getInputStream()));
String line = in.readLine();
System.out.println("Cleint send is :" + line);
out = new PrintWriter(socket.getOutputStream(),true);
out.println("Your Message Received!");
out.close();
in.close();
socket.close();
}
}catch (IOException e)
{
out.println("wrong");
}
}
public static void main(String[] args)
{
new Server();
}
};
Client
端程序:
package test;
import java.io.*;
import java.net.*;

public class Client
{
Socket socket;
BufferedReader in;
PrintWriter out;
public Client()
{
try
{
System.out.println("Try to Connect to 127.0.0.1:10000");
socket = new Socket("127.0.0.1",10000);
System.out.println("The Server Connected!");
System.out.println("Please enter some Character:");
BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
out = new PrintWriter(socket.getOutputStream(),true);
out.println(line.readLine());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(in.readLine());
out.close();
in.close();
socket.close();
}catch(IOException e)
{
out.println("Wrong");
}
}
public static void main(String[] args)
{
new Client();
}
};

14
、用JAVA实现一种排序,JAVA类实现序列化的方法(二种) 如在COLLECTION框架中,实现比较要实现什么样的接口?
:   插入法进行排序代码如下
package test;
import java.util.*;
class InsertSort
{
ArrayList al;                      //
定义一个链表

public InsertSort(int num,int mod)              //带参数的构造函数
{
    al = new ArrayList(num);                         //
实例化链表
    Random rand = new Random();                    //
取一个随机数
   

System.out.println("The ArrayList Sort Before:");
    for (int i=0;i<num ;i++ )
    {
        al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));
        System.out.println("al["+i+"]="+al.get(i));
    }
}
public void SortIt()
{
       Integer tempInt;
       int MaxSize=1;
    for(int i=1;i<al.size();i++)
    {
       tempInt = (Integer)al.remove(i);
       if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())
       {
            al.add(MaxSize,tempInt);
            MaxSize++;
            System.out.println(al.toString());
       }

else

 {
           for (int j=0;j<MaxSize ;j++ )
           {
               if (((Integer)al.get(j)).intValue()>=tempInt.intValue())
               {
                   al.add(j,tempInt);
                   MaxSize++;
                   System.out.println(al.toString());
                   break;
                }
            }
         }
   }

System.out.println("The ArrayList Sort After:");
for(int i=0;i<al.size();i++)
{
     System.out.println("al["+i+"]="+al.get(i));
}

}
public static void main(String[] args)
{
InsertSort is = new InsertSort(10,100);      //
定义一个类的对象
is.SortIt();              //
调用类中的方法, 执行排序
}
}
JAVA类实现序例化的方法是实现java.io.Serializable接口
Collection
框架中实现比较要实现Comparable 接口和 Comparator 接口

15
、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为AB”,输入ABCDEF”6,应该输出为ABC”而不是ABC+汉的半个
答:代码如下:
package test;

class SplitString
{
String SplitStr;
int SplitByte;

public SplitString(String str,int bytes)      //带参数的构造函数,给类变量赋初值
{
SplitStr=str;
SplitByte=bytes;
System.out.println("The String is:´"+SplitStr+"´;SplitBytes="+SplitByte);
}


public void SplitIt()
{
int loopCount;
loopCount=(SplitStr.length()%SplitByte==0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split
Byte+1);
System.out.println("Will Split into "+loopCount);

for (int i=1;i<=loopCount ;i++ )
{
     if (i==loopCount){
           System.out.println(SplitStr.substring((i-1)*SplitByte,SplitStr.length()));
     } else {
            System.out.println(SplitStr.substring((i-1)*SplitByte,(i*SplitByte)));
     }
  }
}
public static void main(String[] args)
{
SplitString ss = new SplitString("test
dddsaf中男大3443n中国43中国人 0ewldfls=103",4);
ss.SplitIt();
}
}

 


16
JAVA多线程编程。 JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。
希望大家补上,谢谢
public class ThreadApp extends Thread{

       Public void run(){

}

}
17
STRING STRINGBUFFER 的区别。
答: STRING的长度是不可变的,STRINGBUFFER的长度是可变的。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffertoString()方法

 

18.      == equals  的区别:

:   "==" 比较的是两个对象的引用 (references),并不是他们的内容.

equals(Object) 方法与 "==" 相比的特殊之处就在于它可以覆盖,所以我们可以通过覆盖的办法让它不是比较引用而是比较数据内容。当然 JDK 中也有覆盖过 equals(Object) 方法的类,如 java.lang.String,它就覆盖了从 Object 继承来的的 equals(Object) 方法,用以比较字符串内容是否相同。

 

19.      JAVA的基本数据类型有哪些 ?  String 是不是基本数据类型 ?

Java 8种基本数据类型: 

   byte   int   short   long   double   float   Boolean   char 

 

其中, byte  int  short  long  都属于整数类型.

Double  float  属于浮点类型.

Boolean  为布尔类型

Char 为字符型

          String 不是基本数据类型.它定义的为对象

 

20.  面向对象语言的特征:

a.        抽象性

b.        封装

c.        继承

d.        多态

 

20.      链表和数组的区别:

               创建数组必须明确说明数组的长度,(即数组中元素的个数),以便在内存中留出一块空间存放所有的数组元素,数组中各数据元素在内存中是顺序存放的.

               创建链表,不需要给出链表中元素(称为节点)的个数,可以先只创建一个链表头,其他

元素在需要时动态地创建并加入到链表,链表的数据无素在内存中不是连续存放的.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics