oracle 登录注册 项目,Mall: 中兴软件项目经理孙孟标带敲的仿京东电商Springboot+Mybatis项目实战 使用Oracle数据库 实现手机号登录注册 商品展示...

Jd

中兴软件仿京东电商项目实战

###项目准备环境

jdk>=1.8

idea>=2017

maven

oracle11g

用户表

create table O_user(

id number(6) not null,

userName VARCHAR2(20),

pass VARCHAR2(20),

primary key(id)

);

primary key(id)(标记主键)

create sequence o_user_seq;

insert into o_user(id,userName,pass) values(o_user_seq.nextval,'sun10','sun10');

商品表

create table o_goods(

id number(8) not null,

type varchar2(100) not null,

title varchar2(300) not null,

price number(8,2) not null,

imgURL VARCHAR2(100) not null,

manufacturer VARCHAR2(40) not null,

evaluate number(10) not null,

primary key(id)

);

create sequence o_goods_id_seq;

插入数据

insert into o_goods values(o_goods_id_seq.nextval,'笔记本','thinkpad3','5299.0','/img/p01.jpg','联想',122);

oracle分页

rownum 分页

select * from (

select A.* , rownum rn

from (select* from o_goods) A where rownum<=8)where rn>=5

看代码是不是比较优

1 如果代码需求改变, 代码修改要最少

2 代码规范 大小写 命名 包 注释:

3 运行效率

4 可扩展性

第一次作业

public class B{

static boolean foo(char c){

System.out.print(c);

return true;

}

public static void main(String[] args){

int i=0;

for(foo('A');foo('B')&&(i<2);foo('C')){

i++;

foo('D');

}

}

}

输出的结果是什么?

结果是ABDCBDCB

equals和==的区别

答: ==比较的是操作符两端的操作数是否是同一个对象

equals比较的是两个对象的内容是否相同

HashMap 底层实现原理

答:HashMap通过固定值key获取内容 是数组+链表的数据结构

底层使用的是数组和哈希的方式实现 通过key找value时间复杂度为O(1)

Key的哈希可能会发生碰撞 解决哈希碰撞有两种方法 1数组长度与容量比达到0.75时

扩容一倍容量 并重新哈希已经哈希的值 2碰撞时以连链表的结点接在后面 链表元素大于8时转化为红黑树结构提高效率

什么是forward和redirect, 有什么区别?

forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;

redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往

forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了

4.什么是共享锁和排它锁,线程中如何实现?

共享锁就是允许多个线程同时获取一个锁,一个锁可以同时被多个线程拥有。

排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁

ajax:异步请求技术

class Base {

Base() {

System.out.println("Base");

}

}

public Class Alpha extends Base {

public static void main(String[] str) {

new Alpha();

new Base();

}

}

输出结果是什么?

Base

Base

Java中final关键字的作用?

final可以修饰类,方法,变量及参数

当final修饰一个类时,表明其为最终类,它不能被继承,

并且类中所有的属性和方法都默认是final类型,如String,Integer等包装类均为final类

被final修饰的方法不可被重写。它可以防止任何继承类修改方法的意义和实现,

而且,使用final修饰方法的执行效率一般高于普通方法

使用final修饰的变量称为常量(大写字母表示),只能被赋值一次,

且赋值之后无法改变,这里的变量又可以分为基本类型变量和引用类型变量,

final修饰基本类型变量时,变量的值不可改变;修饰引用变量时,

变量指向的对象地址不可改变

final修饰的参数有一个只读的属性,即可以读取该参数,

但是无法更改参数的值,同修饰变量一样,当参数为基本类型时,

该参数的值不可改变;当参数为引用类型时,参数的引用地址不可改变。

Java中volatile和 synchronized作用与区别?

volatile修饰的是变量 synchronized修饰的是类和方法

volatile 关键字,使一个变量在多个线程间可见 volatile并不能保证多个线程

共同修改running变量时所带来的不一致问题,也就是说volatile不能替代synchronized

volatile是一种稍弱的同步机制 用来确保将变量的更新操作通知到其他线程

访问volatile变量时不会执行加锁操作,因此也不会使执行线程阻塞,

volatile变量是一种比synchronized关键字更轻量级的同步机制

加锁机制既可以确保可见性又可以确保原子性,而volatile变量只能确保可见性

编写一个单例模式

public class Singleton {

private static Singleton instance;

private Singleton (){ }

public static synchronized Singleton getInstance(){

if (instance == null)

instance = new Singleton();

return instance;

}

}

对于String, 在循环中拼接会有什么问题?如何解决

,String是一个被final修饰的类 不可变,不可修改

所以在循环中用String拼接会频繁创建新的对象 不仅耗费时间,

还会造成内存资源的浪费会导致性能下降 浪费资源 效率低下

可以使用StringBuilder和StringBuffer提高性能

public static long testStr(int n){

long start = SyStem.currentTimeMillis();

String s=s+"java sun";

for(int i=0;i

s=s+"java sun";

}

long end = System.currentTimeMillis();

retrun end-start;

}

public static long testBu(iunt n){

long start =System.currentTimeMillis();

StringBuffer sb=new StringBuffer();

for(int i=0;i

su.su.append("java sun");

}

long end =System.currentTimeMillis();

retrun end-start;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值