分类目录归档:JAVA

关于java的那些事儿

俄罗斯方块java版

俄罗斯方块旋转算法? 俄罗斯方块设计原理? 俄罗斯方块java版下载 软件名称:俄罗斯方块月小升java版本 开发者:月小升 时间:2012-12-8 版本:1.0 简介:本软件采用java编码,兼容windows,linux,mac多种系统。作为一款经典的游戏,我从小就玩俄罗斯方块的掌声游戏机,今日终于自己了解其中算法,做了一个。欢迎大家试玩。 功能: 1.支持5种基本方块 2.支持旋转 3.支持奖励计分。消行1行 100分 2行300分 3行700分 4行1000份 4.支持预览功能,可以看到下一个方块的形态 未来功能: 1.可以暂停 2.增加背景图片 3.增加一万分加速,难度加大 下载地址 华为网盘 http://dl.vmall.com/c0x2miqva2?不用登陆点击即可

发表在 JAVA, 月小升软件 | 标签为 | 2 条评论

俄罗斯方块旋转算法研究

俄罗斯方块旋转算法??俄罗斯方块设计原理??俄罗斯方块java版下载 最近在阅读俄罗斯方块的算法。提到旋转算法。没有向下看了。自己想一想 我自己的想法如下 矩阵旋转算法 A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 旋转以B2 B3 C2 C3 中间的点为旋转轴。 旋转以后矩阵变为 D1?C1?B1?A1 D2?C2?B2?A2? D3?C3?B3?A3 D4?C4?B4 A4 1,1数据变成了 1,4 问题:旋转以后方块的位置发生重大移动。 原因。这个方块的重心其实是B2. 那么一根长条的重心在哪里 A1 A2 A3 A4 … 继续阅读

发表在 JAVA, 日常随笔 | 标签为 , | 留下评论

文本相似度检测-文本比较算法

超级文本比较算法。 可以快速比较两个文本的差异度。 此算法来自互联网 核心修改 private String reg = “(?is)([^\\s]+)”; 本正则表达式表示以空格为单位分解文本内容进行比较。你也可以修改成以标点符号。甚至是单个文字来比较。 算法主要用户文本相似度计算。你当然可以拿来作为删除相同文本的依据。 网络爬虫去重算法的基本原理就是这个。 package com.javaer.sort;   //http://www.thefreecountry.com/programming/filecomparison.shtml // Diff — text file difference utility. // See full docu-comment at beginning of Diff class.   // $Id: Diff.java,v 1.4 2008/01/30 23:27:28 wxx … 继续阅读

发表在 JAVA | 标签为 | 留下评论

你会遇到的java面试题-续篇

你会遇到更多java面试题。 31、String s = “Hello”;s = s + ” world!”;这两行代码执行后,原始的String对象中的内容到底变了没有? 没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 “Hello”,然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个String对象,内容为”Hello world!”,原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。 通过上面的说明,我们很容易导出另一个结论,如果经常对字符串进行各种各样的修改,或者说,不可预见的修改,那么使用String来代表字符串的话会引起很大的内存开销。因为String对象建立之后不能再改变,所以对于每一个不同的字符串,都需要一个String对象来表示。这时,应该考虑使用StringBuffer类,它允许修改,而不是每个不同的字符串都要生成一个新的对象。并且,这两种类的对象转换十分容易。 同时,我们还可以知道,如果要使用内容相同的字符串,不必每次都new一个String。例如我们要在构造器中对一个名叫s的String引用变量进行初始化,把它设置为初始值,应当这样做: public class Demo { private String s; … public Demo { s = “Initial Value”; } … } 而非 s = new String(“Initial Value”); 后者每次都会调用构造器,生成新对象,性能低下且内存开销大,并且没有意义,因为String对象不可改变,所以对于内容相同的字符串,只要一个String对象来表示就可以了。也就说,多次调用上面的构造器创建多个对象,他们的String类型属性s都指向同一个对象。 … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

你会遇到的30个JAVA面试题

这些面试题来自互联网-值得学习-记录在这里,时不常来复习一下java基础。 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法。 1、一个”.java”源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。 2、Java有没有goto? java中的保留字,现在没有在java中使用。 3、说说&和&&的区别。 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。 &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str!= null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。If(x==33& ++y>0) y会增长,If(x==33 && ++y>0)不会增长 &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0×31& 0x0f的结果为0×01。 备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。 4、在JAVA中如何跳出当前的多重嵌套循环? 在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。例如, ok: for(int i=0;i<10;i++) {   for(int j=0;j<10;j++) {   System.out.println(“i=” + i+ “,j=” + j);   … 继续阅读

发表在 JAVA | 标签为 , , | 6 条评论

java操作FTP

java操作FTP,采用sun.net.ftp.FtpClient package com.gap.y;   import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream;   import sun.net.TelnetInputStream; import sun.net.TelnetOutputStream; import sun.net.ftp.FtpClient;   public class Ftp { private FtpClient ftpClient;   public void open(String server, String user, … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

java解析XML

java解析XML有很多方式,dom4j jdom等等。 今天发现org.w3c.dom 是java自带的类包。而且比较简单 /* java解析XML,读取xml中的书名和作者 */ package com.javaer.examples.file;   import java.io.File;   import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException;   import org.w3c.dom.*;   public class ReadXML {   /** * @param args * @throws Exception */ public static void main(String[] … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

Android教程五:Android animation动画特效制作

如同往常一样建立Andoid应用 本次名字叫AnimationTest 在res目录下新建目录 anim anim目录下新建一个XML 名字为simple_animation.xml 内容如下 <?xml version="1.0" encoding="UTF-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android">   <!– Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效   Alpha:渐变透明度动画效果 Scale:渐变尺寸伸缩动画效果 Translate:画面转换位置移动动画效果 Rotate:画面旋转动画效果   Tween Animation 通用属性[类型] 功能 Duration[long] 属性为动画持续时间 时间以毫秒为单位 fillAfter [boolean] 当设置为true ,该动画转化在动画结束后被应用 fillBefore[boolean] 当设置为true ,该动画转化在动画开始前被应用   interpolator 指定一个动画的插入器 有一些常见的插入器 … 继续阅读

发表在 JAVA | 标签为 , | 留下评论

Jedis 连接池JedisPool 解决connection timeout问题

今天发现Jedis 默认的连接方式 jedis=new Jedis(“localhost”,6379),老是发生connection timeout. 后来发现jedis类包还有一种可以设置最大连接时间的方法。 1->获取Jedis实例需要从JedisPool中获取; 2->用完Jedis实例需要还给JedisPool; 3->如果Jedis在使用过程中出错,则也需要还给JedisPool; 代码如下 JedisPoolConfig config = new JedisPoolConfig();   config.setMaxActive(100);   config.setMaxIdle(20);   config.setMaxWait(1000l); JedisPool pool; pool = new JedisPool(config, "2xx.xx.xx.14", 6379);   boolean borrowOrOprSuccess = true; try { jedis = pool.getResource(); // … 继续阅读

发表在 JAVA, 数据库, 高并发与大数据 | 标签为 , | 5 条评论

Android教程四:Activity场景切换

新建项目TwoFace 在activity_main.xml界面拖拉一个button 和一个textview button名字为go to second face . textview文字为First Face 新建一个SecondFace.java和MainActivity.java在一个类包下。 内容如下 package com.javaer.twoface;   import android.app.Activity; import android.os.Bundle; import android.view.Menu;   public class SecondFace extends Activity{   @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second);//表示界面会加载第二个xml文件 }   } layout下新建一个activity_second.xml … 继续阅读

发表在 JAVA | 标签为 , | 留下评论