Java
文章平均质量分 62
icodebugs
爱写bug
展开
-
Android UI顶部导航栏模板
刚学了UI模板新东西,代码简单,很值得思考,特来分享。主要内容是顶部标题栏。在values下新建atts.xml编写自定义<resources> <declare-styleable name="Topbar"> <attr name="title" format="string" /> <attr name="titleTextSize" format="原创 2016-02-17 15:35:09 · 2567 阅读 · 0 评论 -
收集对象(Collection@List、Set、Queue)
在 Java SE中,提供了数个收集对象的类,可以直接取用这些类,而不用重新打造类似的API。1、Collection架构Java SE提供了满足各种需求的API,在使用些API前,建议先了解其继承与接口操作架构,才能了解何时该采用哪个类,以及类之间如何彼此合作,而不会沦于死背API或抄写范例的窘境。 针对收集对象的需求, Java SE提供了 Collection API: ...原创 2018-04-22 21:35:11 · 199 阅读 · 0 评论 -
泛型、Lambda简介
泛型: 在使用Collection收集对象时,由于事先不知道被收集对象的形态,因此内部操作时都是使用 Object来参考被收集的对象,取回对象时也是以 Object类型返回。由于取回对象时会以 object类型返回,若想针对某类定义的行为操作时,必须告诉编译程序,让对象重新扮演该类型。例如 List names = Arrays. aslist("Justin","Monica","Ir...原创 2018-04-30 13:08:55 · 2066 阅读 · 0 评论 -
键值对应Map
Map(支持泛型)架构: 实际上还有Properties继承HashTable。 常用Map操作类有Java.util.HashMap与Java.util.TreeMap。HashTable不建议用,但子类Properties常用。 1、HashMap 建立Map操作对象时,可以使用泛型语法指定键与值的类型。要建立键值对应,可以使用put()方法,第一个自变量是键,第二个自变量是值。对...原创 2018-04-30 16:12:02 · 1992 阅读 · 0 评论 -
InputStrem与OutputStrem
通用dump方法(BufferedInputStream改写更好):package intoutput;import java.io.*;public class IO { private static void dump(InputStream src, OutputStream dest) throws IOException { try (InputStr...原创 2018-04-30 20:16:31 · 350 阅读 · 0 评论 -
字符处理类Reader&Writer
1 、Reader与 Writer继承架构 针对字符数据的读取, Java SE提供了java.io. Reader类,其抽象化了字符数据读入的来源。针对字符数据的写入,则提供了java.io. Writer类,其抽象化了数据写出的目的地。如果想从来源读入字符数据,或将字符数据写至目的地,都可以使用下面的 CharUtil.dump()方法:package intoutput;impor...原创 2018-04-30 21:00:58 · 298 阅读 · 0 评论 -
sort()排序(Comparable、Comparator)
在收集对象之后,对对象进行排序是常用的动作。不用亲自操作排序算法Java.util. Collections提供有sort()方法。由于必须有索引才能进行排序,因此 Collections的sort()方法接受List操作对象。例如:package coll_map;import java.util.*;public class SortDemo { public stat...原创 2018-04-24 18:08:01 · 4840 阅读 · 0 评论 -
匿名内部类联机实例
在撰写Java程序时,经常会有临时继承某个类或操作某个接口并建立实例的需求。由于这类子类或接口操作类只使用一次,不需要为这些类定义名称,这时可以使用匿名内部类( Anonymous Inner Class)来解决这个需求。匿名内部类的语法为:new 父类()|接口(){//类本体操作}Object obj=new Object() { @Override ...原创 2018-04-21 17:16:43 · 152 阅读 · 0 评论 -
Java语法与架构中的异常处理(assert断言、堆栈追踪)
程序中总有些意想不到的状况所引发的错误,Java中的错误也以对象方式呈现为java.lang.Throwable的各种子类实例。只要你能捕捉包装错误的对象,就可以针对该错误做一些处理,例如,试恢复正常流程、进行日志( Logging)记录、以某种形式提醒用户等1、使用try、catch 如下小程序,用户可以连续输入整数最后输入0结束后会显示输入数的平均值package errorD...原创 2018-04-21 21:57:32 · 2302 阅读 · 0 评论 -
Thread线程
龟兔赛跑:package thread;public class Tortoise implements Runnable{ private int totalStep; private int step; public Tortoise(int totalStep) { this.totalStep=totalStep; } @...原创 2018-05-06 17:20:43 · 210 阅读 · 0 评论 -
java程序设计---计算器软件
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame { static JTextField t = new JTextField(&quot;&quot;, 32); public static void main(String[] args...原创 2018-06-11 00:05:49 · 6864 阅读 · 1 评论 -
Java次数差实现
1、次数差【问题描述】x星球有26只球队,分别用a~z的26个字母代表。他们总是不停地比赛。在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)【输入形式】输入,一个串,表示球队获胜情况(保证串的长度&lt;1000)【输出形式】输出一个数字,表示出现次...原创 2018-12-20 20:14:38 · 498 阅读 · 1 评论 -
Java相亲数实现
2、相亲数b【问题描述】2500年前数学大师毕达哥拉斯就发现,220和284两数之间存在着奇妙的联系:220的因数之和(除了自身之外的因数)为:110+55+44+22+20+11+10+5+4+2+1=284,284的因数之和为:142+71+4+2+1=220。毕达哥拉斯把这样的数对称为相亲数。输入两个正整数(大于1并且在int的表示范围之内),分别计算它们所有因数之和(除了自身之外的...原创 2018-12-20 20:17:05 · 1826 阅读 · 0 评论 -
Java合数分解
3、合数分解2【问题描述】由数学基本定理可知:任何一个大于1的非素数整数(即合数)都可以唯一分解成若干个素数的乘积。编写程序,从控制台读入一个合数(合数的大小不会超过int数据类型表示的范围),求这个合数可以分解成的多次出现的素数(即出现次数大于1的素数)。例如合数1260分解成素数乘积为:22335*7,2和3出现两次,5和7出现一次,所以求得的结果为2和3。【输入形式】从控制台输入一个...原创 2018-12-20 21:33:56 · 3159 阅读 · 0 评论 -
Java实现跳台阶问题
5、跳台阶问题【问题描述】一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度,例如n 为1 时只有一种跳法n 为2 时只有两种跳法【输入形式】输入一个整数n【输出形式】n级的跳法数,整数m【样例输入】6【样例输出】13【样例说明】输入与输出均为整数import java.util.Scanner;public class M...原创 2018-12-20 22:08:39 · 3292 阅读 · 0 评论 -
异常与资源管理(自动关闭资源细节)
程序中因错误而抛出异常时,原本的执行流程就会中断,抛出异常处之后的程序代码就不会被执行,如果程序开启了相关资源,使用完毕后应当关闭资源。若因错误而抛出异常,应当考虑是否还能正确地关闭资源。1、使用 finally 如果创建 FileInputstream实例就会开启文档,不使用时,应该调用 close()关闭文档。 Fileutil中是通过 Scanner搭配 FileInputstream...原创 2018-04-22 10:56:31 · 572 阅读 · 0 评论 -
自动装箱拆箱注意事项、了解Integer类缓存机制的“bug”
自动装箱、拆箱的内幕:自动装箱与拆箱的功能事实上是编译程序蜜糖( Compiler Sugar),也就是编译程序让你撰写程序时吃点甜头,编译时期根据所撰写的语法,决定是否进行装箱或拆箱动作。 Integer num=1;//自动装箱,编译程序自动展开为: Integer localInteger=Integer.valueOf(1); int foo=num;...原创 2018-04-05 00:34:04 · 278 阅读 · 0 评论 -
Java增强式for循环&数组是对象
int [][] cords= { {1,2,3,4}, {5,6,7,8} };//cords有两个索引cords.length=2for(int i=0;i<cords.length;i++) { for(int j=0;j<cords[i].length;j...原创 2018-04-07 19:47:22 · 1504 阅读 · 0 评论 -
Java数组(深层)复制
了解数组是对象,就应该知道,以下这个并非数组复制: int[] scores1={1,2,3,4,5,6,7,8,9,0}; int[] scores2 = scores1; scores2[0]=99;//scores2第一个数改为99 for(int x:scores1) { System.out....原创 2018-04-07 20:37:18 · 414 阅读 · 0 评论 -
Java字符串对象及减少效能损耗
字符串对象 在Java中,字符串本质是打包字符数组的对象,是java.lang.string类的实例。同样地,前面讨论过的对象操作特性,字符串也都拥有,不过在Java中基于效能考虑,给予字符串某些特别且必须注意的性质. 字符串基础 由字符组成的文字符号称为字符串。例如," Hello"字符串由’H’、’e’、’l’、’l’、’o’五个字符组成,在某些程序语言中,字符串是以字符数组的方式存在,...原创 2018-04-07 21:40:37 · 321 阅读 · 0 评论 -
Java学习注意项
1.深入了解JVM/JRE/JDK许多书籍对于 JVM/ JRE/JDK的说明,通常以极短的篇幅介绍,就是在短短几页中,请使用者依书中步骤安装与设定PATH、 CLASSPATH后,就开始介绍Java程序语言,而许多人到了业界后就开始使用IDE( Integrated Development Environment,代劳所有JDK细节。这么做的结果就是,在IDE中遇到与JDK相关的问题,就完全不知...转载 2018-04-02 00:05:38 · 156 阅读 · 0 评论 -
JVM深入认识JVM是什么
Java Virtual Machine(JVM)会架构在 Solaris、 LLINUX、 Windows各种操作系统平台之上。许多Java的书都会告诉你,JVM让ava可以跨平台,但是跨平台是怎么一回事在这之前,得先了解不能跨平台是怎么一回事。对于计算机而言,只认识一种语言,也就是0、1序列组成的机器指令。当使用C/C+等高级语言撰写程序时,其实这些语言,是比较贴近人类可阅读的文法,也就是比较...原创 2018-04-02 00:16:58 · 277 阅读 · 0 评论 -
JRE与JDK的区别
看一段程序代码System. out. printin("Hello World")Java是个标准, System、out、 println都是标准中规范的名称。实际上必须要有人根据标准撰写出 System.java,编译为 System. .class,,这样这些名称才能在撰写第一个Java程序时,使用 System:类( Class)上out对象( Object)的 println方法(Me...原创 2018-04-02 00:22:54 · 550 阅读 · 0 评论 -
Java的封装
何谓封装定义类并不等于做好了面向对象中封装(Encapsulation)的概念,那么到底什么才有封装的含义?你必须以对象的角度来思考问题。 封装对象初始流程 假设要写个可以管理储值卡的应用程序,首先得定义储值卡会记录哪些数据,像是储值卡号码、余额、红利点数,在Java中可使用 class关键字进行定义public class CashCard { String number...原创 2018-04-09 16:54:01 · 227 阅读 · 0 评论 -
Java重要关键字
权限关键字private权限修饰 声明为 private的成员表示为类私有,用户无法在其他类的程序代码中直接存取。如果没有声明权限修饰的成员,只有在相同包的类程序代码中才可以直接存取,也就是“包范围权限”。如果不同包的类程序代码中,想要直接存取就会出现错误信息。如:public class CashCard { private int balance; public ...原创 2018-04-09 18:11:29 · 315 阅读 · 0 评论 -
继承与多态
面向对象中,子类继承( Inherit)父类,避免重复的行为定义,不过并非为了避免重复定义行为就使用继承,滥用继承而导致程序维护上的问题时有所闻。如何正确判断使用继承的时机,以及继承之后如何活用多态,才是学习继承时的重点。 1、继承共同行为 继承基本上就是避免多个类间重复定义共同行为。以实际的例子来说明比较清楚,假设你正在开发一款RPG(Role- Playing Game)游戏,一开始设定的...原创 2018-04-15 16:11:52 · 382 阅读 · 0 评论 -
java.lang.Object(数组收集对象&重新定义)
在Java中,子类只能继承一个父类,如果定义类时没有使用 extends关键字指定继承任何类,那一定是继承java.lang. object也就是说,如果这样定义类:public class Some{...}那就相当于撰写:public class Some extends Object{}因此在Java中,任何类追溯至最上层父类一定就是java.lang. Object,...原创 2018-04-15 17:42:28 · 4397 阅读 · 0 评论 -
Java中关于垃圾收集和抽象类
创建对象会占据内存,如果程序执行流程中已无法再使用某个对象,该对象就只是徒耗内存的垃圾。对于不再有用的对象,JVM有垃圾收集( Garbage Collection,GC)机制,收集到的垃圾对象所占据的内存空间,会被垃圾收集器释放。那么,哪些会被JVM认定为垃圾对象?简单地说,执行流程中,无法通过变量参考的对象,就是GC认定的垃圾对象 执行流程具体来说就是线程( Thread)如main()程序...原创 2018-04-15 18:53:33 · 142 阅读 · 0 评论 -
接口与多态
一个海洋乐园游戏,当中所有东西都会游泳。知道继承可以运用多态,定义fish类,类中有个swim()的行为:package hello;public abstract class Fish { protected String name; public Fish(String name) { this.name=name; } public...原创 2018-04-15 20:24:44 · 653 阅读 · 0 评论 -
接口语法细节(枚举常数)
1、接口的默认 在Java中,可使用 interface来定义抽象的行为外观,如接口中的方法可声明为 public abstract。例如:public interface Swimmer{ public abstract void swim();}接口中的方法没有操作时,一定得是公开且抽象,为了方便,你也可以省略public abstract。public int...原创 2018-04-15 21:10:18 · 474 阅读 · 1 评论 -
E754浮点数运算误差用Bigdecimal解决
java.math. Bigdecimaldouble类型:1.0-0.8的结果不是0.2,而是0.19999999999999996所以常用if(abs(result)<(pow(1,-6)))判断为相等你使用别的程序语言(如 Javascript.、 Python等)也有可能显示这个结果。简单来说,Java(包括其他程序语言)遵守E754浮点数运算( Floating- -Point A...原创 2018-04-04 00:38:29 · 245 阅读 · 0 评论 -
Leetcode724:寻找数组的中心索引(java、python3)
寻找数组的中心索引给定一个整数类型的数组 nums,请编写一个能够返回数组**“中心索引”**的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释:...原创 2019-05-29 16:35:25 · 209 阅读 · 0 评论