1.java源代码 求大神 明天就要上机
2.有Person表,大神结构如下: (求大神发下java源代码)
3.大神们 急求基于eclipse的java小游戏程序的源码,程序不要多复杂啊。源码源码像坦克大战,大神五子棋,源码源码扫雷之类的大神谢谢
4.Java Hello world 源码执行流程详解
java源代码 求大神 明天就要上机
package com.uisftec;
import java.io.Serializable;
public class TestScores implements Serializable {
private double[] testScores;
public TestScores(double[] testScores) {
this.testScores = testScores;
}
public double getAverageScore() {
double sum = 0.0d;
for (int i = 0; i < testScores.length; i++) {
sum += testScores[i];
}
return sum / testScores.length;
}
}
package com.uisftec;
public class InvalidTestScore {
public InvalidTestScore(double[] testScores) {
if (testScores == null) {
throw new IllegalArgumentException("数组为空");
}
for (int i = 0; i < testScores.length; i++) {
if (testScores[i] < 0 || testScores[i] > ) {
throw new IllegalArgumentException("数组中包含的test Score不在0~这个范围内");
}
}
}
}
package com.uisftec;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
public class TestScoresSerialize {
public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
// 创建5个对象
TestScores testScores1 = new TestScores(new double[] { 1.0, 2.0 });
TestScores testScores2 = new TestScores(new double[] { 5.0, 2.0 });
TestScores testScores3 = new TestScores(new double[] { .0, .0 });
TestScores testScores4 = new TestScores(new double[] { .0, .0 });
TestScores testScores5 = new TestScores(new double[] { .0, .0 });
// 创建数组
TestScores[] testScores = new TestScores[] { testScores1, testScores2, testScores3, testScores4, testScores5 };
// 写入到D盘testScores.dat
ObjectOutput out = new ObjectOutputStream(new FileOutputStream("d:\\testscores.dat"));
for (TestScores testScores6 : testScores) {
out.writeObject(testScores6);
}
// D盘STOUT
File file = new File("D:\\STDOUT");
// 创建输出留
DataOutputStream outputStream = new DataOutputStream(new FileOutputStream(file));
// 创建读取d盘序列化对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream("d:\\testscores.dat"));
// 打印平均分并写入到D盘STDOUT
TestScores testScores8 = (TestScores) in.readObject();
System.out.println(testScores8.getAverageScore());
outputStream.writeDouble(testScores8.getAverageScore());
TestScores testScores9 = (TestScores) in.readObject();
outputStream.writeDouble(testScores9.getAverageScore());
System.out.println(testScores9.getAverageScore());
TestScores testScores = (TestScores) in.readObject();
System.out.println(testScores.getAverageScore());
outputStream.writeDouble(testScores.getAverageScore());
TestScores testScores = (TestScores) in.readObject();
System.out.println(testScores.getAverageScore());
outputStream.writeDouble(testScores.getAverageScore());
TestScores testScores = (TestScores) in.readObject();
System.out.println(testScores.getAverageScore());
outputStream.writeDouble(testScores.getAverageScore());
// 关闭流
out.close();
in.close();
outputStream.close();
}
}
有Person表,结构如下: (求大神发下java源代码)
实体类package dao;public class Person {
private Integer personid;
private String personname;
private String degree;
private String birth;
private Integer sal;
public Person() {
}
public Person(Integer personid, String personname, String degree, String birth, Integer sal) {
super();
this.personid = personid;
this.personname = personname;
this.degree = degree;
this.birth = birth;
this.sal = sal;
}
public Integer getPersonid() {
return personid;
}
public void setPersonid(Integer personid) {
this.personid = personid;
}
public String getPersonname() {
return personname;
}
public void setPersonname(String personname) {
this.personname = personname;
}
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree;
}
public String getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public Integer getSal() {
return sal;
}
public void setSal(Integer sal) {
this.sal = sal;
}
@Override
public String toString() {
return "Person [personid=" + personid + ", personname=" + personname + ", degree=" + degree + ", birth=" + birth
+ ", sal=" + sal + "]";
}
}
2. dao
package dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class PersonDao {
static Connection conn = null;
static {
// 修改成自己的数据库
String url = "jdbc:mysql://.0.0.1:/test?serverTimezone=UTC&useSSL=false";
String user = "root";
String password = "root";
try {
// 记得导入 驱动包
// 驱动名称:com.mysql.jdbc.Driver (指的是驱动版本:5.7版本的)
// com.mysql.cj.jdbc.Driver (8.0版本)
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
conn = null;
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
conn = null;
e.printStackTrace();
}
}
/
*** 查找所有的数据
* @return List集合
* @throws SQLException
*/
public List<Person> findAll() throws SQLException{
List<Person> list = null;
if(conn != null) {
list = new ArrayList<>();
String sql = "select * from person";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Person temp = new Person();
temp.setPersonid(rs.getInt("personid"));
temp.setPersonname(rs.getString("personname"));
temp.setDegree(rs.getString("degree"));
temp.setBirth(rs.getString("birth"));
temp.setSal(rs.getInt("sal"));
list.add(temp);
}
}
return list;
}
public Person findById(int personId) throws SQLException {
Person temp = null;
if(conn != null){
String sql = "select * from person where personid =?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, personId);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
temp = new Person();
temp.setPersonid(rs.getInt("personid"));
temp.setPersonname(rs.getString("personname"));
temp.setDegree(rs.getString("degree"));
temp.setBirth(rs.getString("birth"));
temp.setSal(rs.getInt("sal"));
}
}
return temp;
}
/
*** 通过id来删除一条记录
* @param personId
* @throws SQLException
*/
public void deleteById(int personId) throws SQLException {
if(conn != null) {
String sql = "delete from person where personid = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, personId);
ps.execute();
}else {
System.out.println("无法建立连接");
}
}
// 其他的可以自己试试来写!模板都是源码源码macd自动提示买卖源码一样的,除了sql语句不同
}
大神们 急求基于eclipse的大神java小游戏程序的源码,程序不要多复杂啊。源码源码像坦克大战,大神五子棋,源码源码扫雷之类的大神谢谢
import java.util.Scanner;public class Wuziqi {
/
*** 棋盘
*/
private final int[][] qipan;
/
*** 步数
*/
private int bushu;
/
*** 构造方法,设置棋盘规格
* @param x
* @param y
*/
public Wuziqi(int x,源码源码 int y) {
if (x < 1 || y < 1) {
System.out.println("棋盘规格应不小于1,使用默认规格");
qipan = new int[9][9];
} else {
qipan = new int[y][x];
}
}
/
*** 游戏开始
*/
public void play() {
int[] zuobiao = null;
//如果游戏没有结束
while (!end(zuobiao)) {
//落子,大神并取得坐标
zuobiao = luozi();
//输出棋盘
out();
}
}
/
*** 输出棋盘和棋子
*/
private void out() {
for (int i = 0; i < qipan.length; i++) {
for (int j = 0; j < qipan[i].length; j++) {
if (qipan[i][j] == 0) {
System.out.print(" +");
}else if (qipan[i][j] == -1) {
System.out.print(" 白");
}else if (qipan[i][j] == 1) {
System.out.print(" 黑");
}
}
System.out.println(" ");
}
}
/
*** 落子
*/
private int[] luozi() {
int[] zuobiao;
bushu++;
if (bushu % 2 == 1) {
System.out.println("请黑方落子");
zuobiao = input();
qipan[zuobiao[1]][zuobiao[0]] = 1;
}else {
System.out.println("请白方落子");
zuobiao = input();
qipan[zuobiao[1]][zuobiao[0]] = -1;
}
return zuobiao;
}
/
*** 输入坐标
* @return
*/
private int[] input() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入x轴坐标");
String x = sc.next();
System.out.println("请输入y轴坐标");
String y = sc.next();
//如果没有通过验证,源码源码则再次执行input(),大神递归算法
if (!validate(x, y)) {
return input();
}
int int_x = Integer.valueOf(x);
int int_y = Integer.valueOf(y);
return new int[] { int_x, int_y};
}
/
*** 校验数据
* @param x
* @param y
* @return
*/
private boolean validate(String x, String y) {
Integer int_x = null;
Integer int_y = null;
//异常处理的方式判断字符串是否是一个整数
try {
int_x = Integer.valueOf(x);
int_y = Integer.valueOf(y);
} catch (NumberFormatException e) {
System.out.println("坐标格式错误,坐标应为整数");
return false;
}
if (int_x < 0 || int_y < 0 || int_x >= qipan[0].length || int_y >= qipan.length) {
System.out.println("坐标越界");
return false;
}
if (qipan[int_y][int_x] == 0) {
return true;
} else {
System.out.println("坐标上已有棋子");
}
return false;
};
/
*** 结束条件
* @return
*/
private boolean end(int[] zuobiao) {
if (zuobiao == null) {
return false;
}
//计数器
//表示棋盘上经过最近落子坐标的4条线上的连续(和最近落子颜色相同的)棋子的个数
//如果某条线上连续的棋子大于等于4(加上最近落子本身,大于等于5),则游戏结束,符合五子棋规则
int[] jieguo = new int[4];
int x = zuobiao[0];
int y = zuobiao[1];
//定义八个方向
final int[][] fangxiang = { { -1, 0}, { -1, 1}, { 0, 1}, { 1, 1}, { 1, 0}, { 1, -1}, { 0, -1}, { -1, -1}};
//最近落子的坐标上的棋子颜色
int number = qipan[y][x];
//搜索最近落子坐标为中心最远4的距离
for (int i = 1; i <= 4; i++) {
//每次搜索不同的距离都搜索八个方向
for (int j = 0; j < fangxiang.length; j++) {
//约定如果某个方向为null时,不再搜索这个方向。tcp udp测试源码关键字continue是跳过本次(一次)循环的意思
if (fangxiang[j] == null) {
continue;
}
int mubiao_x = x + i * fangxiang[j][0];
int mubiao_y = y + i * fangxiang[j][1];
//如果搜索坐标相对于棋盘越界,则不再搜索这个方向
if (mubiao_y >= qipan.length || mubiao_y < 0 || mubiao_x >= qipan[0].length || mubiao_x < 0) {
fangxiang[j] = null;
continue;
}
//如果最近落子坐标上的值等于目标坐标上的值(颜色相同),则计数器上某条线加1
//否则认为这个方向没有棋子或有别的颜色的棋子,不再搜索这个方向
if (number == qipan[mubiao_y][mubiao_x]) {
jieguo[j % 4]++;
}else {
fangxiang[j] = null;
}
}
}
//查看计数器上是否有比3更大的数(查看是否有一方胜出)
for (int i : jieguo) {
if (i > 3) {
System.out.println("游戏结束");
if (bushu % 2 == 1) {
System.out.println("黑方胜");
} else {
System.out.println("白方胜");
}
return true;
}
}
//没有胜出者的情况下,查看棋盘上是否还有空位置,如果有,则游戏可以继续
for (int[] arr : qipan) {
for (int i : arr) {
if (i == 0) {
return false;
}
}
}
//如果没有空位置,则平局
System.out.println("游戏结束,平局");
return true;
}
}
Java Hello world 源码执行流程详解
深入解析 Java "Hello World" 程序的执行流程,从源代码到屏幕显示,myeclipse 导入tomcat源码每一个步骤都充满技术奥秘。理解这一过程,不仅能加深对 Java 语言特性的认识,更能洞察计算机底层机制的精妙。 让我们从最简单的 "Hello World" 程序开始。虽然它看起来极其简单,但其执行逻辑却包含了对 Java 语言、操作系统的深入理解。 Java "Hello World" 程序的执行,始于源代码的车牌识别 c源码编译过程。Java 代码经过编译器的词法语法语义分析,最终转化为字节码文件(.class)。字节码作为 Java 代码的中间表示形式,便于在不同平台间移植。 随后,字节码文件通过 JVM (Java 虚拟机) 转化为机器码文件。这一过程不仅实现了代码在不同操作系统间的执行,还确保了 Java 程序的跨平台特性。 具体流程如下: 编译过程:将 Java 源代码编译为字节码文件。这些文件包含程序逻辑的教务系统源码下载抽象表示,便于在 JVM 上执行。 类加载机制:Java 类的加载采用双亲委派机制,确保类加载的唯一性和一致性。加载过程包括验证、准备、解析和初始化阶段,确保类的安全性。 创建栈帧:在 JVM 内存中,为程序入口方法(如 main())创建栈帧。栈帧中包含了方法执行所需的局部变量、操作数栈等数据结构。 在栈帧中,字符串 "Hello World" 通过一系列操作被赋值至变量。具体步骤涉及类加载、字符串常量池、操作数栈的使用,以及方法区的字符常量池。使用工具如 `javap -c Main.class` 可解析 `.class` 文件,深入了解这些过程。 执行 `System.out.println()` 方法时,JVM 加载 `System` 类字节码文件,创建 `System.out` 对象,并调用其 `println` 方法输出字符串。这一过程涉及原始 IO 包的使用,以及字符串的 `toString()` 方法。 接下来,JVM 字节码执行引擎将字节码转换为机器码,分配 CPU 资源执行。CPU 执行包含取值、译码和执行操作,通过操作系统管理内存、磁盘和设备。程序执行涉及 I/O 操作的完成,从文件描述符写入字符串,到操作系统检查字符串位置,直至最终在屏幕上显示 "Hello World"。 这一系列复杂的步骤,从源代码编译到屏幕显示,展示了计算机程序执行的全貌。理解这一过程,不仅有助于提升编程技能,更能加深对计算机底层工作的认知。