为什么电子商务用java
发布时间:2025-05-24 04:29:33 发布人:远客网络
一、为什么电子商务用java
1、银行的官方网站用的都是java/jsp的,php的是前端脚本不安全,电子商务免不了跟钱打交道,安全肯定是第一的。
2、 linux,windows都能跑,asp的话只能跑windows,windows服务器肯定是没linux牛啦,linux比windows安全,当然这个是相对的,牛人的话,windows也能弄的很安全。
3、前台显示和业务逻辑分开,便于二次开发维护,php就是全部写在php文件里。
4、 java领域的开源框架太多了,资料也很多,社区牛人也很多。
二、java商城系统
1、java商城系统的种类就是目前比较流行的一些电商模式有b2b\b2c\b2b2c\o2o\p2p\c2c等所有的电商模式都可以使用java开发的商城系统。
2、优点:相对于其他的商城系统来说,其优点是系统运行的更加的稳定,系统本身更安全,系统不易出现故障。说白了就是使用更放心。
3、国内有很多的java商城系统开发服务商,如ShopJsp等,java商城系统随着电商的发展也迎来了一个春天。
三、求java考题,笔试题
This():当前类的对象,super父类对象。
Super():在子类访问父类的成员和行为,必须受类继承规则的约束
而this他代表当前对象,当然所有的资源都可以访问.
在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
而在方法中super和this使用的方法就差不多了.只不过super要考虑是否能访问其父类的资源.
2.作用域public,protected,private,以及不写时的区别?
Public:不同包、同一包、类内都可用
Protected:不同包的子类、同一包、类内都可用
publicstatic void main(String[] args){
4. JAVA的事件委托机制和垃圾回收机制
Java事件委托机制的概念,一个源产生一个事件并将它送到一个或多个监听器那里。在这种方案中,监听器简单的等待,直到它收到一个事件。一旦事件被接受,监听器将处理这个事件,然后返回。
垃圾回收机制垃圾收集是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或者其赋值为null,则次对象适合进行垃圾回收
5.在JAVA中,如何跳出当前的多重嵌套循环?
6.什么是java序列化,如何实现java序列化?(写一个实例)
序列化:处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序列化的实现:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implementsSerializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。
7.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
可以。如果这个类的修饰符是public,其类名与文件名必须相同。
8.排序都有哪几种方法?请列举。用JAVA实现一个快速排序?
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
9. Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
重写Override,子类覆盖父类的方法,将子类传与父类的引用调用的还是子类的方法。
重载Overloading一个类多个方法,名称相同,参数个数类型不同。
两者都是Java多态性的不同表现。
Overloaded的方法是可以改变返回值的类型。
System.out.prinln(8+8+”88”+8+8);
(方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。)
属性常量方法不可以overridding类不可以继承
11.继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
System.out.println("FatherClassCreate");
public class ChildClass extends FatherClass{
System.out.println("ChildClassCreate");
public static void main(String[] args){
FatherClass fc= new FatherClass();
ChildClass cc= new ChildClass();
System.out.println("InterClassCreate");
InterClass ic= new InterClass();
System.out.println("OuterClassCreate");
public static void main(String[] args){
OuterClass oc= new OuterClass();
C:>java test/OuterClass InterClass Create OuterClass Create
13.用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?
14.如在COLLECTION框架中,实现比较要实现什么样的接口?
public InsertSort(int num,int mod){
System.out.println("The ArrayList SortBefore:");
al.add(new Integer(Math.abs(rand.nextInt())% mod+ 1));
System.out.println("al["+i+"]="+al.get(i));
for(int i=1;i<al.size();i++){
tempInt=(Integer)al.remove(i);
if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue()){
System.out.println(al.toString());
for(int j=0;j<MaxSize;j++){
if(((Integer)al.get(j)).intValue()>=tempInt.intValue()){
System.out.println(al.toString());
System.out.println("The ArrayList SortAfter:");
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);
JAVA类实现序例化的方法是实现java.io.Serializable接口
Collection框架中实现比较要实现Comparable接口和 Comparator接口
16.编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
public static void split(String source,intnum) throws Exception{
for(int i= 0; i<source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
15、Java编程,打印昨天的当前时刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal= Calendar.getInstance();
System.out.println(cal.getTime());
BufferedReader in= new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i= Integer.parseInt(stri.trim());
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i));//可能是编码的原因,如果直接写入int的话,将出现java编码和windows编码的混乱,因此此处写入的是String
public static void main(String[] ars){
A ab= new B();//执行到此处,结果: 1a2b
ab= new B();//执行到此处,结果: 1a2b2b
}注:类的static代码段,可以看作是类首次加载(被虚拟机加载)执行的代码,而对于类的加载,首先要执行其基类的构造,再执行其本身的构造
(1)接口可以被多重implements,抽象类只能被单一extends(2)接口只有定义,抽象类可以有定义和实现(3)接口的字段定义默认为:publicstatic final,抽象类字段默认是"friendly"(本包可见)
当功能需要累积时用抽象类,不需要累积时用接口。
通过类(Class对象),可以得出当前类的fields、method、construtor、interface、superClass、modified等,同是可以通过类实例化一个实例、设置属性、唤醒方法。Spring中一切都是返射、struts、hibernate都是通过类的返射进行开发的。
20、类的返射机制中的包及核心类?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三个过程是什么?
①对象.getClass()②类.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
①产生一个Class数组,说明方法的参数②通过Class对象及方法参数得到Method③通过method.invoke(实例,参数值数组)唤醒方法
23、如何将数值型字符转换为数字(Integer,Double)?
Integer.parseInt(“1234”) Double.parseDouble(“123.2”)
25、如何去小数点前两位,并四舍五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小时分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+""+c.get(Calendar.DAY_OF_MONTH));
27、如何取得从1970年到现在的毫秒数
Java.util.Date dat=new Date(); long now=dat.getTime();
28、如何获取某个日期是当月的最后一天?
当前日期加一天,若当前日期与结果的月份不相同,就是最后一天。
取下一个月的第一天,下一个月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+""+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最后一天");
System.out.println("不是取后一天");
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str=sdf.format(dat);//把日期转化为字符串
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”);//将字符串转化为日期
30、编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
应该是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));