JAVA
alan19931103
哈库呐玛塔塔
展开
-
Swing问题记录
JFrame不按尺寸显示具体描述:我把win下面写的正常的代码拿到linux下跑了一下,结果窗口变成了小小的一团,并没有按照代码那样显示。 代码JFrame window = new JFrame("坦克大战");window.setSize(960, 640);window.setVisible(true);window.setResizable(false);window.se原创 2015-10-03 05:16:26 · 386 阅读 · 0 评论 -
《thinking in java》学习笔记15
泛型泛型实现了参数化类型概念,使代码可以应用于多种类型简单泛型元组是一个单一对象,它将以组队想直接打包存储于其中,它允许读取不允许存放(也叫做信使,数据传送对象)泛型接口泛型可用于接口,例如生成器泛型方法可以在类中参数化方法,是否拥有泛型方法,与所在类是否是泛型的没有关系泛型方法使得该方法能够独立于类而产生变化如果使用泛型方法可以取代将整个类泛型化,那原创 2015-09-16 21:35:07 · 262 阅读 · 0 评论 -
《thinking in java》学习笔记12
通过异常处理错误概念不必在每个地方进行检查,异常机制保证能捕捉错误,只需要在异常处理程序中处理异常就可以了基本异常抛出异常,从当前环境中跳出,把问题提交给上一级环境异常允许我们强制程序停止运行,并告诉我们出了什么问题,或者强制程序处理问题,并返回到稳定状态捕获异常在方法内抛出异常会导致方法在抛出的过程中结束,要是不希望结束方法,可以在try,catch把tr原创 2015-09-16 21:34:54 · 295 阅读 · 0 评论 -
《jogl简明教程》学习笔记3
双缓冲在1.2.3节的时候有一个示例代码如下import javax.media.opengl.*;import com.sun.opengl.util.Animator;import java.awt.event.*;//built on J1_O_Point classpublic class J1_1_Point extends J1_0_Point {static Ani原创 2015-09-16 21:34:09 · 1336 阅读 · 0 评论 -
《thinking in java》学习笔记11
持有对象集合类:List,Set,Queue,Map泛型和类型安全的容器ArrayList:用add()添加对象,用get(index)获取对象,index为索引,使用size()获得对象个数如果一个类没有显式的声明继承自那个类,那么自动继承自Object,类型参数可以有多个,指定了容器实例可以保存的类型,可以在编译器反之将错误类型的对象放置到容器中foreach语法可以原创 2015-09-16 21:34:52 · 305 阅读 · 0 评论 -
递归导致内存溢出
递归在分析问题的时候很方便,但是在写实现的时候开销却很大,尤其是当递归层数太深的时候,内存就会溢出java里面JVM的机制在调用函数的时候任然是进栈和出栈,所以极易导致栈内存溢出,错误类型java.lang.StackOverflowError错误几天写的一段代码就出现了这个问题。大概结构是这样的:A(){ if(){}//递归终止条件 else(){原创 2015-09-16 21:34:49 · 13137 阅读 · 0 评论 -
《thinking in java》学习笔记7
复用类组合——在新类中产生现有类的对象继承——在现有类中添加新代码组合语法每一个对象都有一个toString()方法,该方法会在需要String的时候自动被调用构造器创建默认对象的时间是正要使用这些对象之前(惰性初始化)继承语法可以为每个类设置一个main方法用于测试Java会自动在导出类中插入对基类构造器的调用如果没有默认基类构造器或者想调用一个带参数的构造原创 2015-09-16 21:34:34 · 369 阅读 · 0 评论 -
《thinking in java》学习笔记5
初始化与清理用构造器确保初始化创建对象时为对象分配存储空间,并调用相应构造器不接受任何参数的构造器叫做默认构造器、无参构造器构建器属于一种较特殊的方法类型,因为它没有返回值。这与 void 返回值存在着明显的区别。对于void 返回值,尽管方法本身不会自动返回什么,但仍然可以让它返回另一些东西。构建器则不同,它不仅什么也不会自动返回,而且根本不能有任何选择方法重载每个重载原创 2015-09-16 21:34:29 · 386 阅读 · 0 评论 -
《jogl简明教程》学习笔记2
绘制图形,这个相当坑。我一开始以为jogl怎么连画个线的方法都没有,居然要用无数个点来模拟线条,还不如他老子呢。当我耐心的看完几个用点模拟线的方法以后,往后一页——绘制直线。。。。。。泪。。。。。。。画直线gl.glBegin(GL.GL_LINES);gl.glVertex2i(x0,y0);//起点gl.glVertex2i(xn,yn);//终点glEnd();画多边形原创 2015-09-16 21:34:06 · 1121 阅读 · 0 评论 -
《thinking in java》学习笔记14
类型信息运行时识别对象和类的信息主要有两种方法传统的RTTI,他假定我们在编译时已经知道了所有的类型“反射”机制,允许在运行时发现和使用类的信息为什么需要RTTI面向对象编程中基本的目的是:让代码只操纵对基类的引用如果某个对象出现在字符串表达式中,toString方法自动被调用最基本的RTTI使用形式:容器将所有事物当做Object持有,取出时自动将结果转型。ja原创 2015-09-16 21:35:05 · 289 阅读 · 0 评论 -
《thinking in java》学习笔记3
操作符使用Java操作符几乎所有操作符都只能操作 基本类型 ,例外是 =、==、!=,他们也能操作对象。Sting类支持+和+=优先级详细参考http://blog.csdn.net/xiaoli_feng/article/details/4567184先乘除后加减,括号优先赋值基本类型存储了实际数值,不是指向对象的引用。操作对象时操作的是对象的引用原创 2015-09-16 21:34:24 · 344 阅读 · 0 评论 -
《thinking in java》学习笔记8
多态再论向上转型转机将一个方法调用同一个方法主体关联起来称作绑定Java中出了static和final方法外,其他所有方法都是后期绑定只有非private方法才能被覆盖在导出类中,对基类的private方法最好采用不同的名字只有普通方法的调用可以是多态的构造器和多态当覆盖基类的清理方法时,要先调用基类的清理方法否则清理动作不会发生销毁的顺序应该和初始化顺序相反原创 2015-09-16 21:34:37 · 262 阅读 · 0 评论 -
JAVA同步容器使用心得
重新写了一次坦克大战,以前自己写一个新类用synchronized同步所有方法,现在发现java自己提供了要给,记录一下使用过程中遇到的问题。Collections.synchronizedList最开始我以为直接使用返回的值就可以了,后来发现完全没用,正确的用法是用synchronized关键字把对象先锁住然后再使用。List list = Collections.synchronizedList原创 2015-12-21 19:08:24 · 442 阅读 · 0 评论 -
Eclipse设置代码垂直对齐
示例//非垂直对齐 int[] myArray = { 1, 2, 3, 4, 5, 6 }; int theInt = 1; String someString = "Hello"; double aDouble = 3.0;//垂直对齐 int[] myArray = { 1, 2, 3, 4, 5, 6 }; int theI原创 2015-12-01 10:02:57 · 4319 阅读 · 0 评论 -
《jogl简明教程》学习笔记4
视图的部分,我觉得和c下的opengl真是没有多少区别。我说的是3d的。2d的函数居然用的是my****命名,难道我没有看懂??再说吧,反正3d的是肯定没错了这些个函数都可以直接查询opengl的书,具体什么意思,什么参数。(再次推荐《红宝书》)gl.glClear()清除(比如颜色、深度缓存)gl.glEnable开启某项功能gl.glRotatef (alpha, 0原创 2015-09-16 21:34:11 · 762 阅读 · 0 评论 -
Java键盘监听器的小研究
键盘监听的KeyLisenter接口定义的三个方法中,released很明确,但是另外两个好像有点绕,今天稍微研究了一下。keyPressed()和keyTyped()按照api的说法,pressed和typed是同时产生的,但是typed只用于字符键。一般的,按下一个按键的时候先产生Pressed然后产生Typed,如果没有松开,那么两者持续且交替的继续产生。 首先,我在windows7和cen原创 2015-10-07 06:28:06 · 891 阅读 · 0 评论 -
《thinking in java》学习笔记16
数组数组为什么特殊数组是一种效率最高的存储和随机访问对象引用序列的方式数组可以持有基本类型,而容器不能。有了自动包装机制,容器看起来还能持有基本类型,所以数组仅存的优点就是效率数组是第一级对象数组标识符其实只是一个引用,只想在堆内存中创建的一个真实对象,这个数组对象用以保存指向其他对象的引用。length是数组对象唯一一个可以访问的字段,"[]"语法是访问数组的唯一方式原创 2015-09-16 21:35:02 · 296 阅读 · 0 评论 -
GoF的23种设计模式
设计原则:开闭原则(Open ClosedPrinciple,OCP):模块应对扩展开放,而对修改关闭里氏代换原则(LiskovSubstitution Principle,LSP):如果调用的是父类的话,那么换成子类也完全可以运行依赖倒转原则(DependencyInversion Principle,DIP):要针对接口编程,而不是针对实现编程。接口隔离原则(Interfac原创 2015-09-16 21:34:44 · 359 阅读 · 0 评论 -
JAVA坏境变量设置与作用
在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、“path”、“classpath”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和classpath是不存在的。 一:点“新建”,然后在变量名写上JAVA_H原创 2015-09-16 21:33:39 · 443 阅读 · 0 评论 -
AWT结构·事件·监听器总结
网上找到个很好的ppt总结AWT很详细,里面的图标画的相当好,收藏下来原创 2015-09-16 21:33:57 · 314 阅读 · 0 评论 -
《thinking in java》学习笔记6
访问权限控制包:库单元每个编译单元内可以有一个public类,该类的名称必须与文件名相同每个编译单元只可以有一个public类编译单元内的其他类在包外无法访问,他们主要用来支持public类类库实际上是一组类文件,每个文件都有一个构件,用package使他们属于同一个构件包名全部使用小写字母CLASSPATH是查找.class文件的根目录访问权限修饰词public原创 2015-09-16 21:34:32 · 371 阅读 · 0 评论 -
java.util.ConcurrentModificationException
LinkedList<Ant> tree = new LinkedList<Ant>(); /* *省略若干代码 */ for(Ant an:tree){ an.move(); if(an.pos==0 || an.pos==27) tree.remove原创 2015-05-04 21:56:15 · 444 阅读 · 0 评论 -
GridBagLayout使用心得
Java有很多布局管理器,但是感觉都不够灵活,程序的界面一般都不可能那么简单,相比之下GridBagLayout好像灵活很多,但是也复杂一些,稍微研究了一下,有一些小心得,不正确的地方希望大神指正。GridBagLayout需要配合一个GridBagConstraints对象来使用,GridBagConstraints就是复杂的地方,它表示了组件摆放的所有细节。用两个panel展示效果JPanel原创 2015-05-26 16:36:49 · 942 阅读 · 2 评论 -
《thinking in java》学习笔记1
书买回来好久,但是都还没看过,据说是非常经典的。正好有时间就好好看一下,好久不动,也正好复习一下。做点记录导论:抽象过程所有编程语言都提供抽象机制。纯粹的面向对象程序设计方式五个特征:万物皆为对象程序是对象的集合每个对象都有自己的由其他对象所构成的存储每个对象都拥有其类型某一特定类型的所有对象都可以接受同样的消息每个对象都有一个接口类描述了具有相同特性原创 2015-09-16 21:34:16 · 386 阅读 · 0 评论 -
LinkedList中的remove方法
实在是太坑爹了!!!!!jdk7的api里面,他有三个remove方法 return type method Description E remove() Retrieves and removes the head (first element) of this list. E remove(int index) Removes the element at th原创 2015-11-04 11:44:08 · 14467 阅读 · 3 评论 -
返回整型的二进制补码中1的个数
一直都觉得补码这种东西简直小儿科,取个反加一,多简单。但是今天一个大意就中招了。leetcode上有这么一题,32位的无符号整型,返回1的个数。我用java,可惜java没有整型。虽然java的api中直接就有对应的方法,但是为了保持逼格,必须自己写,所以我就写出了下面这货int count = 0;if(n<0)count++;for(int i=0;i<32;i++){ if(nl%原创 2015-11-03 17:16:31 · 452 阅读 · 0 评论 -
如何写批处理文件(转)
原博主地址:http://blog.csdn.net/jxcjxinxing/article/details/1482796教教你如何写.bat批处理文件 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行转载 2015-09-16 21:35:15 · 298 阅读 · 0 评论 -
凑100
写程序在1,2,3,…….,9之间任意放置+或者-或者不放,使结果为100,输出所有可能的放法 例如:1+2+3-4+5+6+78+9=100;思路:对于本题,总共9个数字,最多有8个符号9个数字,总共17个。将8个符号进行穷举,用0表示不加入符号位,这样可以免去排列组合的问题。然后将符号和数组组合到一个数组,从这个数组中分离出计算的数字和符号,计算结果java实现import java.ut原创 2015-05-05 06:07:09 · 333 阅读 · 0 评论 -
五只蚂蚁
有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。 编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。public class FiveAnts {原创 2015-05-04 22:43:37 · 845 阅读 · 0 评论 -
球掉落问题
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下 *求它在 第10次落地时,共经过多少米?第10次反弹多高?基本思路 某一次下落的高度是前一次下落高度的一半;某一次上升高度于后一次下降高度相同;第一次下落高度为100米;用递归java实现public class DropBall { public static void main(String[] args){原创 2015-05-04 15:14:21 · 1004 阅读 · 0 评论 -
用程序解逻辑推理题
请回答下面10个问题: 1、第一个答案是b的问题是哪一个? (a)2;(b) 3;(c)4;(d)5;(e)6 2、唯一的连续两个具有相同答案的问题是: (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7; 3、本问题答案和哪一个问题的答案相同? (a)1;(b)2;(c)4;(d)7;(e)6 4、答案是a的问题的个数是: (a)0原创 2015-05-04 14:15:32 · 887 阅读 · 0 评论 -
java分解质因数
按照短除法,逐个求取质因数import java.util.Scanner;import java.util.Stack;public class PrimeFactorizations { static int number; static Stack<Integer> stack = new Stack<Integer>(); public static void m原创 2015-04-30 13:32:29 · 808 阅读 · 0 评论 -
《thinking in java》学习笔记2
一切都是对象用引用操作对象标识符实际上是对象的一个引用必须由你创建所有对象六个存储数据的地方寄存器:最快的存储区,不能控制堆栈:位于通用RAM。通过堆栈指针从处理器获得直接支持。Java编译器必须准确地知道堆栈内保存的所有数据的“长度”以及“存在时间”堆。一种常规用途的内存池(也在 RAM 区域),其中保存了Java对象。分配空间会花掉更多时间换取灵活性原创 2015-09-16 21:34:19 · 314 阅读 · 0 评论 -
《thinking in java》学习笔记10
内部类创建内部类如果想从外部类的非静态方法之外的任意位置创建内部类的对象,必须具体的指明这个对象的类型。链接到外部类内部类能访问其外围对象的所有成员,而不需要任何特殊的条件内部类自动拥有对其外围类所有队员的访问权当某个外围类的对象创建了一个内部类对象时,此时内部类对象必定会秘密的捕获一个指向那个外围类对象的引用,然后在访问此外围类的成员时,就是用哪个引用来选择外围类的原创 2015-09-16 21:34:47 · 268 阅读 · 0 评论 -
SwingWorker 简单使用方法
SwingWorker 设计用于需要在后台线程中运行长时间运行任务的情况,并可在完成后或者在处理过程中向 UI 提供更新。SwingWorker 的子类必须实现 doInBackground() 方法,以执行后台计算。 工作流 SwingWorker 的生命周期中包含三个线程: 当前 线程:在此线程上调用 execute() 方法。它调度 SwingWorker 以在原创 2015-05-29 23:20:59 · 4593 阅读 · 2 评论 -
《thinking in java》学习笔记4
控制执行流程true、falseif-else迭代java唯一用到都好操作符的地方就是for循环的控制表达式foreach语句用于遍历数组和容器return返回退出break & continuebreak——强制退出循环,不执行剩下的语句continue——停止当前迭代,从循环开始处开始新一轮迭代gotoJava没有got原创 2015-09-16 21:34:26 · 282 阅读 · 0 评论 -
java常量池
论坛里有人问了个问题: 为什么(Integer)1==(Integer)1, (Integer)222!=(Integer)222?Java为了提高性能提供了和String类一样的对象池机制,当然Java的八种基本类型的包装类(Packaging Type)也有对象池机制。Java在编译的时候会执行将代码封装成Integer i1=Integer.valueOf()。 Integer.valueO原创 2015-04-30 14:03:35 · 294 阅读 · 0 评论 -
"=="与“equals()”
equals()方法继承自Object类,boolean equals(Object o){ return this==o;}Obeject的equals()方法与“==”是同样的效果。即比较类的地址(即引用)。 但是java中很多类都重写了equals()方法,所以,在这些类中二者是不等价的。所有的基本类型对象都重写了equals()方法。在比较两个对象时,确保自己明白equals()原创 2015-04-30 19:35:58 · 343 阅读 · 0 评论 -
自增“++”和自减“--”
int x=10; int j; j = x++;//看这边 System.out.println(x); int x=10; int j; x = x++;//看这边 System.out.println(x);第一个会输出11,第二个会输出10。这是今天偶然看到的,而这个解释听起来比较容易理解: x++是一个表达式,它的值是x,在这个表达式原创 2015-05-04 14:07:36 · 371 阅读 · 0 评论 -
《jogl简明教程》学习笔记1
jogl的资料是在是太少了,找了将近一个月,几乎看到的都是《jogl简明教程》,中文的教程完全就没有是在没有办法只能硬着头皮用这本书了。不过在看jogl之前看看opengl的书(推荐《红宝书》)还是非常有用的这里对《jogl简明教程》书里的内容做一些学习记录首先创建一个窗口,opengl的绘图需要一个窗口,c里面有glut,java目测只能自己写(我看nehe的教程也是自己写的)。原原创 2015-09-16 21:34:04 · 3042 阅读 · 0 评论