导航:首页 > 编程语言 > javaweb开发源码

javaweb开发源码

发布时间:2024-12-18 20:16:59

java web服务器 源码放哪个位置

源码?还是编译好的 class 文件,如果是 class 文件的话,在 tomcat 下放在 webapps 下即可

② 跪求停车场管理系统源代码,注意是javaweb


import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

/*********************************
* 停车场管理
* author zhang
*2013-12-13
********************************/
public class CarStopManager {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.println("请入车牌号:");
String carno = sc.next();
CarStopManager carStopManager = new CarStopManager();
carStopManager.setCarNo(carno);//设置车牌号

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String sdate = format.format(new Date());
System.out.println("当前时间(入场时间)是: "+sdate);

System.out.println("需要开出车场吗?yes/no:");
String yesno = sc.next();

if(yesno.equals("yes")){
String edate = format.format(new Date());
System.out.println("出场时间是: "+edate);
//计算方法
carManager(2, sdate, edate,carStopManager);
}
}
/**
* 计算方法
*/
public static void carManager(int type,String starTime,
String endTime,CarStopManager carStopManager){

if(type==1){//按月收费
System.out.println("如若没有缴纳月费请缴纳800元,如若缴纳将不再提示!");
}else{
/**
* 一般不会有停车几个月的吧?先不考虑停车几年或者几个月的
*/
String sDay = starTime.substring(8,10);//入场日期(天)
String sHour = starTime.substring(11, 13);//入场小时
String sMM = starTime.substring(14,16);//入场分钟

String eDay = starTime.substring(8,10);//出场日期(天)
String eHour = endTime.substring(11, 13);//出厂小时
String eMM = endTime.substring(14,16);//出厂分钟

float money = 0;//需缴纳的费用
int shour = Integer.parseInt(sHour);
int ehour = Integer.parseInt(eHour);
int smm = Integer.parseInt(sMM);
int emm = Integer.parseInt(eMM);
int rehour = 0;//停车几个小时

if(sDay.equals(eDay)){//同一天
//当天6点到20点之间
if((shour>=6 && shour<=20)){
if(ehour - shour<=6){//6个小时之内
rehour = (ehour - shour)*60+(emm - smm);//停车多少分钟
//需要缴纳的费用 前15分钟免费 以后每15分钟1.5元
money = (rehour/15-15)*1.5f;
}else{
int hour = ehour - shour -6;//6小时除外剩余小时数
rehour = 6*60+(emm - smm);//停车多少分钟
//前15分钟免费 以后每15分钟1.5元 超过6小时15分钟2元
money = ((rehour/15-15)*1.5f)+(hour*60/2);
}
}
}else{//跨天 20点到 6点之间
//todo
}
System.out.println("您的车牌号是:"+carStopManager.getCarNo()+"; " +
"您此次停车花费的费用是: "+money+"元");
}
}

/**
* bean属性
*/
private String carNo;//车牌号

private String startTime;//入场时间

private String endTime;//出场时间
/**
* 无参构造
*/
public CarStopManager(){
super();
}
/**
* 有参数构造
* @param carNo
* @param startTime
* @param endTime
*/
public CarStopManager(String carNo, String startTime, String endTime) {
super();
this.carNo = carNo;
this.startTime = startTime;
this.endTime = endTime;
}
/**
* 设置get方法
* @return
*/
public String getCarNo() {
return carNo;
}
/**
* 设置set方法
* @param carNo
*/
public void setCarNo(String carNo) {
this.carNo = carNo;
}

public String getStartTime() {
return startTime;
}

public void setStartTime(String startTime) {
this.startTime = startTime;
}

public String getEndTime() {
return endTime;
}

public void setEndTime(String endTime) {
this.endTime = endTime;
}

}

③ JAVA 编译后WEB项目 源码没有了 怎么可以添加新功能求各位高手指点,小弟不懈感激

看你是什么样的功能吧。
有可能是这样的。对方将原码编译成一个jar文件放到web-inf/lib下。
他们需要你做的功能完全是新的,对即有的不会有影响。
如果是这样,那你需要知道你要继承什么样的接口来做实现。这个需要对方提供相应的资料。

如果是改动即有的功能,没有源码,做不了。
虽然可以反编译代码,但反编译的也不是完全都准确的,有些语句解析的不正确,最常见的就是异常处理的反编译。

总得来说,没有源码是很不方便的。

④ java源码解析

如何快速读懂项目源码javaWeb

一:学会如何读一个JavaWeb项目源代码步骤:表结构-web.xml-mvc-db-spring

ioc-log-代码

1、先卖祥了解项目数据库的表结构,这个方面是最容易忘记的,有时候我们只顾着看每一个方法是怎么进行的,却没

有去了解数据库之间的主外键关联。其实如果先了解数据库表结构,再去看一个方法的实现会更加容易。

2、然后需要过一遍web.xml,知道项目中用到了什么拦

截器,监听器,过滤器,拥有哪些配置文件。如果是拦截器,一般负责过滤请求,进行AOP等;如果是监可能是定时任务,初始化任务;配置文件有如使用了spring

后的读取mvc相关,db相关,service相关,aop相关的文件。

3、查看拦截器,监听器代码,知道拦截了什么请求,这

个类完成了怎样的工作。有的人就是因为缺少了这一步,自己写了一个action,配置文件也没有写错,但是却怎么

调试也无法进入这个action,直到别人告诉他,请求被拦

4、接下来,看配置文件,首先一定是mvc相关的,如springmvc

中,要请求哪些请求是静态资源,使用了哪些view策略,侍陵controller注解放在哪个包下等。然后是db相关配置文件,看使用了什么数据库,使用了

什么orm框架,是否开启了二级老配戚缓存,使用哪种产品作为二级缓存,事务管理的处理,需要扫描的实体类放在什么位置。最后是spring核心的ioc

功能相关的配置文件,知道接口与具体类的注入大致是怎样的。当然还有一些如apectj置文件,也是在这个步骤中完成

5、log

相关文件,日志的各个级别是如何处理的,在哪些地方使用了log记录日志

6、从上面几点后知道了整个开源项目的整体框架,阅读每个方法就不再那么难了。

7、当然如果有项目配套的开发文档也是要阅读的。

源码解析-偏向锁撤销流程解读

源码链接:

简单总结下偏向撤销的流程:

细节补充:

如何判断偏向所有者没有正在持有该偏向锁?

分两步,首先判断偏向所有者是否还活着,如果还活着,则遍历它的栈,看是否能找到关联该锁的锁记录,如果找到,则正在持有,如果没找到,则没有持有。(遍历过程在一个安全点执行,此时偏向所有者被阻塞。)

偏向所有者正在持有该偏向锁,如何将其撤销为轻量级锁?

遍历偏向所有者的栈,修改与该锁关联的所有顷橘旅锁记录,让偏向所有者以为它对该对象加的就是轻量级锁。

源码中的highest_lock,为什么说是最早关联偏向锁的锁记录呢?

首伍喊先,锁记录在栈里是连续存放的。

请求获取锁时,按照从低地址到高地址的顺序,找在已关联该锁的锁记录之前,最后一个空闲的锁记录(没有指向雀凳任何锁对象)。

请求锁的源码如下:

而撤销偏向锁时,遍历偏向所有者的锁记录,也是按照从低地址到高地址的顺序,但它没有break的逻辑,因为它要处理所有关联该锁的锁记录。所以退出循环后,highest_lock指向的是最早关联该锁的锁记录。

这篇:源码解析-触发批量撤销或批量重偏向的条件,介绍了批量撤销的触发条件。

包含批量撤销逻辑的源码:

禁用类的可偏向属性有两点作用:

对于批量撤销时,正在被线程持有的偏向锁,通过在安全点遍历所有Java线程的栈,将偏向锁撤销为轻量级锁。

JAVA源码解析的时候Character.MIN_RADIX为什么=2?

‘’占一个蚂誉位,你想一下,如果值是1,那么你怎么输笑物租入汉字

Character类的使用方法

Character:字符类型

1、属碰兆性。

staticintMIN_RADIX:返回最小基数。

java解析eml的源代码

//?从EML文件得到MimeMessage对象

MimeMessage?message?=?new?MimeMessage(session,?new?FileInputStream(emlFile));

public?static?String?getMailSubject(Message?message)?throws?拆察Exception?{

return?MimeUtility.decodeText(message.getSubject());

}

public?static?String?getMailSender(Message?message)?throws?Exception?{

String?emailSender?=?null;

Address[]?addresses?=?message.getFrom();

if?(addresses?==?null?||?addresses.length??1)?{

throw?旅橘茄new?IllegalArgumentException("该邮件没有发件人");

}

//?获得发件人

InternetAddress?address?=?(InternetAddress)?addresses[0];

String?senderName?=?address.getPersonal();

if?(senderName?!=?null)?{

senderName?=?MimeUtility.decodeText(senderName);

emailSender?=?senderName?+?""?+?address.getAddress()?+?"";

}?else?{

senderName?=?address.getAddress();

}

return?emailSender;

}

public?static?String?getMailRecipients(Message?message,?Message.RecipientType?recipientType)?throws?Exception?{

StringBuilder?builder?=?new?StringBuilder();

Address[]?addresses?=?null;

if?(recipientType?==?null)?{

addresses?=?message.getAllRecipients();

}?else?{

addresses?=?message.getRecipients(recipientType);

}

if?(addresses?==?null?||?addresses.length??1)?{

throw?new?IllegalArgumentException("该邮件没有收件人");

}

for?(Address?address?:?addresses)?{

InternetAddress?iAddress?=?(InternetAddress)?address;

builder.append(iAddress.toUnicodeString()).append(",?");

}

return?builder.deleteCharAt(builder.length()?-?1).toString();

}

public?static?String?getMailSendDate(Message?message,?String?pattern)?throws?Exception?{

String?sendDateString?=?null;

if?(pattern?==?null?||?"".equals(pattern.trim()))?{

pattern?=?"yyyy年MM月dd日?E?HH:mm";

}

Date?sendDate?=?message.getSentDate();

sendDateString?=?new?SimpleDateFormat(pattern).format(sendDate);

return?伍凯sendDateString;

}

public?static?boolean?containsAttachment(Part?part)?throws?Exception?{

boolean?flag?=?false;

if?(part?!=?null)?{

if?(part.isMimeType("multipart/*"))?{

MimeMultipart?mp?=?(MimeMultipart)?part.getContent();

for?(int?i?=?0;?i??mp.getCount();?i++)?{

BodyPart?bodyPart?=?mp.getBodyPart(i);

String?disposition?=?bodyPart.getDisposition();

if?(disposition?!=?null??(Part.ATTACHMENT.equalsIgnoreCase(disposition)

||?Part.INLINE.equalsIgnoreCase(disposition)))?{

flag?=?true;

}?else?if?(bodyPart.isMimeType("multipart/*"))?{

flag?=?containsAttachment(bodyPart);

}?else?{

String?contentType?=?bodyPart.getContentType();

if?(contentType.indexOf("application")?!=?-1)?{

flag?=?true;

}

if?(contentType.indexOf("name")?!=?-1)?{

flag?=?true;

}

}

if?(flag)

break;

}

}?else?if?(part.isMimeType("message/rfc822"))?{

flag?=?containsAttachment((Part)?part.getContent());

}

}

return?flag;

}

public?static?boolean?isSeen(Message?message)?throws?Exception?{

if?(message?==?null)?{

throw?new?MessagingException("Message?is?empty");

}

return?message.getFlags().contains(Flags.Flag.SEEN);

}

public?static?boolean?isReplaySign(Message?message)?throws?Exception?{

if?(message?==?null)?{

throw?new?MessagingException("Message?is?empty");

}

boolean?replaySign?=?false;

String[]?headers?=?message.getHeader("Disposition-Notification-To");

if?(headers?!=?null??headers.length??0)?{

replaySign?=?true;

}

return?replaySign;

}

public?static?String?getMailPriority(Message?message)?throws?Exception?{

if?(message?==?null)?{

throw?new?MessagingException("Message?is?empty");

}

String?priority?=?"普通";

String[]?headers?=?message.getHeader("X-Priority");

if?(headers?!=?null??headers.length??0)?{

String?mailPriority?=?headers[0];

if?(mailPriority.indexOf("1")?!=?-1?||?mailPriority.indexOf("High")?!=?-1)?{

priority?=?"紧急";

}?else?if?(mailPriority.indexOf("5")?!=?-1?||?mailPriority.indexOf("Low")?!=?-1)?{

priority?=?"低";

}?else?{

priority?=?"普通";?//?3或者Normal;

}

}

return?priority;

}

public?static?void?getMailTextContent(Part?part,?StringBuilder?content)?throws?Exception?{

if?(part?==?null)?{

throw?new?MessagingException("Message?content?is?empty");

}

boolean?containsTextInAttachment?=?part.getContentType().indexOf("name")??0;

if?(part.isMimeType("text/*")??containsTextInAttachment)?{

content.append(part.getContent().toString());

}?else?if?(part.isMimeType("message/rfc822"))?{

getMailTextContent((Part)?part.getContent(),?content);

}?else?if?(part.isMimeType("multipart/*"))?{

Multipart?mp?=?(Multipart)?part.getContent();

for?(int?i?=?0;?i??mp.getCount();?i++)?{

BodyPart?bodyPart?=?mp.getBodyPart(i);

getMailTextContent(bodyPart,?content);

}

}?else?if?(part.isMimeType("image/*"))?{

//?TODO?part.getInputStream()获得输入流然后输出到指定的目录

}?else?{

//?TODO?其它类型的contentType,?未做处理,?直接输出

content.append(part.getContent().toString());

}

}

public?static?void?saveAttachment(Part?part,?String?destDir)?throws?Exception?{

if?(part?==?null)?{

throw?new?MessagingException("part?is?empty");

}

//?复杂的邮件包含多个邮件体

if?(part.isMimeType("multipart/*"))?{

Multipart?mp?=?(Multipart)?part.getContent();

//?遍历每一个邮件体

for?(int?i?=?0;?i??mp.getCount();?i++)?{

BodyPart?bodyPart?=?mp.getBodyPart(i);

//?bodyPart也可能有多个邮件体组成

String?disposition?=?bodyPart.getDisposition();

if?(disposition?==?null??(Part.ATTACHMENT.equalsIgnoreCase(disposition)

||?Part.INLINE.equalsIgnoreCase(disposition)))?{

InputStream?in?=?bodyPart.getInputStream();

saveFile(in,?destDir,?decodeText(bodyPart.getFileName()));

}?else?if?(bodyPart.isMimeType("multipart/*"))?{

saveAttachment(bodyPart,?destDir);

}?else?{

String?contentType?=?bodyPart.getContentType();

if?(contentType.indexOf("name")?!=?-1?||?contentType.indexOf("application")?!=?-1)?{

saveFile(bodyPart.getInputStream(),?destDir,?decodeText(bodyPart.getFileName()));

}

}

}

}?else?if?(part.isMimeType("message/rfc822"))?{

saveAttachment((Part)?part.getContent(),?destDir);

}

}

public?static?void?saveFile(InputStream?in,?String?destDir,?String?fileName)?throws?Exception?{

FileOutputStream?out?=?new?FileOutputStream(new?File(destDir?+?fileName));

byte[]?buffer?=?new?byte[1024];

int?length?=?0;

while?((length?=?in.read(buffer))?!=?-1)?{

out.write(buffer,?0,?length);

}

out.close();

in.close();

}

public?static?String?decodeText(String?encodedText)?throws?Exception?{

if?(encodedText?==?null?||?"".equals(encodedText.trim()))?{

return?"";

}?else?{

return?MimeUtility.decodeText(encodedText);

}

}

⑤ 求Java web增删改查 极简源码

//用户新增
publicbooleanaddUser(Usersuser){
try{
conn=ConnDB.getConnection();
Stringsql="insertintotb_usersvalues(default,?,?,?,?,?,?)";
System.out.println(sql);
ps=conn.prepareStatement(sql);
ps.setInt(1,user.getDepID());
ps.setString(2,user.getUserName());
ps.setString(3,user.getUserPwd());
ps.setString(4,user.getUserCode());
ps.setString(5,user.getUserSex());
ps.setInt(6,user.getUserAge());
if(ps.executeUpdate()==1){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,null);
}
returnfalse;
}
//用户删除
publicbooleandelUser(intid){
try{
conn=ConnDB.getConnection();
Stringsql="deletefromtb_userswhereid=?";
System.out.println(sql);
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
if(ps.executeUpdate()==1){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,null);
}
returnfalse;
}
//用户编辑
publicbooleanupdateUser(Usersuser){
try{
conn=ConnDB.getConnection();
Stringsql="updatetb_userssetdepID=?,userName=?,userPwd=?,userCode=?,userSex=?,userAge=?whereid=?";
System.out.println(user.getDepID()+user.getUserName()+user.getUserPwd()+user.getUserCode()+user.getUserSex()+user.getUserAge()+user.getId());
ps=conn.prepareStatement(sql);
ps.setInt(1,user.getDepID());
ps.setString(2,user.getUserName());
ps.setString(3,user.getUserPwd());
ps.setString(4,user.getUserCode());
ps.setString(5,user.getUserSex());
ps.setInt(6,user.getUserAge());
ps.setInt(7,user.getId());
if(ps.executeUpdate()==1){
returntrue;
}
}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,null);
}
returnfalse;
}
//根据id查询用户
publicUsersfindAllUserById(intid){
Usersu=null;
DepDaodepd=null;
try{
conn=ConnDB.getConnection();
Stringsql="select*fromtb_userswhereid=?";
System.out.println(sql);
ps=conn.prepareStatement(sql);
ps.setInt(1,id);
rs=ps.executeQuery();
if(rs.next()){
depd=newDepDao();
Departmentdep=depd.findAllDepById(rs.getInt("depID"));
System.out.println(dep.getDepName());
u=newUsers();
u.setId(rs.getInt("id"));
u.setDepID(rs.getInt("depID"));
u.setUserName(rs.getString("userName"));
u.setUserPwd(rs.getString("userPwd"));
u.setUserCode(rs.getString("userCode"));
u.setUserSex(rs.getString("userSex"));
u.setUserAge(rs.getInt("userAge"));
u.setDep(dep);
}

}catch(Exceptione){
e.printStackTrace();
}finally{//关闭当前页打开的相关对象
ConnDB.close(conn,ps,rs);
}
returnu;
}

这是我在层写的代码,都调用了ConnDB这个类,这个类完成了驱动的注册,及连接数据库的功能,代码如下:

packagecom.asjy.util;

importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;

publicclassConnDB{
privatestaticStringurl="jdbc:mysql://localhost:3306/news";
privatestaticStringuser="root";
privatestaticStringpass="root";

//1.加载驱动
static{
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundExceptione){
System.out.println("驱动加载失败");
}
}


//2.建立数据库连接对象
()throwsException{
returnDriverManager.getConnection(url,user,pass);
}

//3.关闭数据库
publicstaticvoidclose(Connectionconn,Statementps,ResultSetrs){
try{
if(rs!=null){
rs.close();
rs=null;
}
if(ps!=null){
ps.close();
ps=null;
}
if(conn!=null){
conn.close();
conn=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}

⑥ 用java web小游戏源代码。期末结课老师让做,急用,谢了

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;

@SuppressWarnings("serial")
public class MainClass extends JFrame {
ControlSnake control;

Toolkit kit;

Dimension dimen;

public static void main(String[] args) {
new MainClass("my snake");
}

public MainClass(String s) {
super(s);
control = new ControlSnake();
control.setFocusable(true);
kit = Toolkit.getDefaultToolkit();
dimen = kit.getScreenSize();

add(control);
setLayout(new BorderLayout());
setLocation(dimen.width / 3, dimen.height / 3);// dimen.width/3,dimen.height/3
setSize(FWIDTH, FHEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
}

public static final int FWIDTH = 315;

public static final int FHEIGHT = 380;
}

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.Timer;

@SuppressWarnings("serial")
public class ControlSnake extends JPanel implements ActionListener {
Random rand;

ArrayList<Point> list, listBody;

String str, str1;

static boolean key;

int x, y, dx, dy, fx, fy, flag;

int snakeBody;

int speed;

public ControlSnake() {
snakeBody = 1;

str = "上下左右方向键控制 P键暂停...";
str1 = "现在的长度为:" + snakeBody;
key = true;
flag = 1;

speed = 700;
rand = new Random();
list = new ArrayList<Point>();
listBody = new ArrayList<Point>();

x = 5;
y = 5;
list.add(new Point(x, y));
listBody.add(list.get(0));

dx = 10;
dy = 0;

fx = rand.nextInt(30) * 10 + 5;// 2
fy = rand.nextInt(30) * 10 + 5;// 2

setBackground(Color.BLACK);
setSize(new Dimension(318, 380));

final Timer time = new Timer(speed, this);
time.start();

addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == 37) {
dx = -10;
dy = 0;
} else if (e.getKeyCode() == 38) {
dx = 0;
dy = -10;
} else if (e.getKeyCode() == 39) {
dx = 10;
dy = 0;
} else if (e.getKeyCode() == 40) {
dx = 0;
dy = 10;
} else if (e.getKeyCode() == 80) {
if (flag % 2 == 1) {
time.stop();
}
if (flag % 2 == 0) {
time.start();
}
flag++;
}
}
});

}

public void paint(Graphics g) {
g.setColor(Color.WHITE);
g.fillRect(0, 0, 400, 400);
g.setColor(Color.DARK_GRAY);
g.drawLine(3, 3, 305, 3);
g.drawLine(3, 3, 3, 305);
g.drawLine(305, 3, 305, 305);
g.drawLine(3, 305, 305, 305);
g.setColor(Color.PINK);

for (int i = 0; i < listBody.size(); i++) {
g.fillRect(listBody.get(i).x, listBody.get(i).y, 9, 9);
}
g.fillRect(x, y, 9, 9);
g.setColor(Color.ORANGE);
g.fillRect(fx, fy, 9, 9);

g.setColor(Color.DARK_GRAY);
str1 = "现在的长度为:" + snakeBody;
g.drawString(str, 10, 320);
g.drawString(str1, 10, 335);
}

public void actionPerformed(ActionEvent e) {
x += dx;
y += dy;
if (makeOut() == false) {
JOptionPane.showMessageDialog(null, "重新开始......");

speed = 700;

snakeBody = 1;

x = 5;
y = 5;

list.clear();
list.add(new Point(x, y));
listBody.clear();
listBody.add(list.get(0));

dx = 10;
dy = 0;

}
addPoint(x, y);
if (x == fx && y == fy) {
speed = (int) (speed * 0.8);//速度增加参数
if (speed < 200) {
speed = 100;
}
fx = rand.nextInt(30) * 10 + 5;// 2
fy = rand.nextInt(30) * 10 + 5;// 2
snakeBody++;// 2
} // 2
repaint();
}

public void addPoint(int xx, int yy) {
// 动态的记录最新发生的50步以内的移动过的坐标
// 并画出最新的snakeBody
if (list.size() < 100) {//蛇身长度最长为100
list.add(new Point(xx, yy));
} else {
list.remove(0);
list.add(new Point(xx, yy));
}
if (snakeBody == 1) {
listBody.remove(0);
listBody.add(0, list.get(list.size() - 1));
} else {
listBody.clear();
if (list.size() < snakeBody) {
for (int i = list.size() - 1; i > 0; i--) {
listBody.add(list.get(i));
}
} else {
for (int i = list.size() - 1; listBody.size() < snakeBody; i--) {
listBody.add(list.get(i));
}
}
}
}

public boolean makeOut() {
if ((x < 3 || y < 3) || (x > 305 || y > 305)) {
return false;
}
for (int i = 0; i < listBody.size() - 1; i++) {
for (int j = i + 1; j < listBody.size(); j++) {
if (listBody.get(i).equals(listBody.get(j))) {
return false;
}
}
}
return true;
}
}

/*贪吃蛇代码*/

阅读全文

与javaweb开发源码相关的资料

热点内容
hbo直播在什么app里看 浏览:13
内网补丁服务器地址 浏览:833
阳泉安卓系统开发需要什么软件 浏览:133
html备忘录页面源码 浏览:75
用python开发的网站 浏览:11
一户一档怎么建文件夹 浏览:146
如何换到国外的服务器免费 浏览:854
早期电影app有什么 浏览:352
安卓手机用什么类型的充电器 浏览:144
php智能家居 浏览:176
安卓手机视频通话时如何录音 浏览:104
php比较字符串区分大小写 浏览:652
怎么用泡沫海绵做解压锤子 浏览:771
phpstruts2 浏览:465
洋葱应用源码 浏览:230
个税app单子哪里拉 浏览:289
写app要什么软件 浏览:973
邮储银行已加密怎么解除 浏览:79
游戏泰拉瑞亚如何开服务器 浏览:524
javatailf 浏览:653