java中一个引人深思的匿名内部类】的更多相关文章

前两天去面试javaweb问到一个问题,在你的项目中有没有用到线程,我特么的一想,这东西不是在c层面的吗,所以说我不了解线程..... 后来回去想啊想啊,我操这特么的不是再问我事物的控制,消息队列的回调?这特么的是什么面试 下面写出我这两天的答案,另附文章比较长大部分都是引用书本或个人博客 程序要靠上下文(context)来描述当前做的工作,防止忽略之前的数据,当然我们学习也要有个铺垫 在此列出以便有些我没有讲到的知识被忽略 [多问几个为什么]为什么匿名内部类中引用的局部变量和参数需要final…
java中一个字符串是另外一个字符串的字串 String类中有一个方法 public boolean contains(Sting s)就是用来判断当前字符串是否含有参数指定的字符串例s1=“takecatb”s2=“te”语句:s1.contains(s2) //s1调用这个方法 若其值为ture说明s1包含s2 若为fasle 则不包含…
在使用多线程的时候,时常会使用两种方式实现,一种是直接继承Thread类来实现多线程,另外一种就是实现Runnable接口. 我们都知道,接口是没有构造方法的,同时匿名内部类也是没有构造方法的.原因有这几点:1.接口只是一个声明,需要有一个实现类实现这个接口.2.匿名内部类是匿名了,也就是说没有类名,所以就没有构造方法. 但是我们在new一个接口的时候常常会使用这种方式,就是用匿名内部类的方式去实现. Runnable runnable=new Runnable() { @Override pu…
面向对象: 1, 面向过程的思想(合适的方法出现在合适的类里面) 准备去一个地方: 先买车, 挂牌, 开导航, 踩油门, 过黄河, 穿越珠穆朗玛峰... 2, 面向对象的思想 我开着车去, 车怎么去随便所有去这个地方的信息, 全部封装在这个车里面, 我不了解这个车是怎么运行的, 我也不需要了解, 我只知道我能到达这个地方就行了面向对象的基本思想是, 从现实世界中客观存在的事物出发, 来构造软件系统, 并在系统的构造中尽可能的运用人类的自然思维方式, 面向对象是目前人与计算机沟通最简单的语言思想…
java中,线程的状态使用一个枚举类型来描述的.这个枚举一共有6个值: NEW(新建).RUNNABLE(运行).BLOCKED(锁池).TIMED_WAITING(定时等待).WAITING(等待).TERMINATED(终止.结束). 但是我发现大多数人的理解和上面的这六种还是有些差别,通常会加上阻塞状态,可运行状态,挂起状态. 这是Thread类描述线程状态的枚举类的源代码: public enum State { /** * Thread state for a thread which…
在Java中,char的长度是2字节,即16位,2的16次方是65536. 1.如果采用utf-8编码,一个汉字占3个字节,char为什么还能存下一个汉字呢? 参考:https://developer.aliyun.com/ask/65417?spm=a2c6h.13159736.https://blog.csdn.net/shipfei_csdn/article/details/81900952.https://blog.csdn.net/Sugar_Z_/article/details/51…
在java中,数组不能放不同数据类型的值. 方法一: 多态 定义数组类型的时候定义为父类,而存进数组为父类的子类 public class test2 { public static void main(String args[]) { father []a = new father[2]; a[0] = new son(); a[1] = new son2(); } } class father{ int i = 0; } class son extends father{ int x = 0…
内部类 内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然,此处不能单方面用属性或者方法表示一个心脏,而需要一个类 而心脏又在人体当中,正如同是内部类在外部内当中 实例1:内部类的基本结构 //外部类 class Out { private int age = 12; //内部类 class In { public void print() { Sy…
因为有用到分页,首先建一个page类 1 public class Page<T> { 2 private int pageSize; //每页显示条数 3 private int curPage = 1; //当前页,默认从1开始 4 private long total; //总记录数 5 private int pages; //总页数 6 private List<T> list; //页面列表数据 7 public Page() { 8 pageSize = 5; //默…
背景   char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char   char在设计之初的时候被用来存储字符,可是世界上有那么多字符,如果有1个字节,那么就意味着只能存储256中,显然不合适,而如果有两个字节,那么就可以存储65536种.这个数量符合大多数国家的语言字符的个数.于是Java团队默认使用unicode作为编码,一个char作为2个字节来存储.   这里就有两个问题了?     1. java的char一定会…
什么是内部类? 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类.   成员内部类 定义在类中方法外的类. 定义格式: class 外部类 { class 内部类{ } } 在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构.比如,汽车类Car 中包含发动机类Engine ,这时,Engine就可以使用内部类来描述,定义在成员位置. 代码举例: class Car { //外部类 class Engine { //内部类 } } 访问特点 成员内部类可…
import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set;   public class MinMapDemo {       public static void main(String[] args) {         Map<Integer, Integer> map = new HashMap<…
首先在tomcat服务器下的webapps的download项目下建一个doc文件夹,再建个test.doc.防止控指针异常 DownLoad.java代码 package com.down; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.ser…
一.MultiValueMap介绍,与map,HashMap相差不多 添加一个Key对应一个Value的:void add(K, V); 添加一个Key对应多个Value的:void add(K, List); 设置一个Key对应一个Value的:void set(K, V); 设置一个Key对应多个Value的:void set(K, List); 移除一个Key和它对应的Value:List remove(K); 清除所有Value的:void clear(); 拿到所有Key的集合:Set…
方法一:把类声明为final 方法二:对类中的构造器声明为private,类中提供一个static方法,完成对类的初始化.如下代码: public class Base{ private Base(){} public static Base ini(){ Base a=new Base(); return a; } public static void main(String[] args) { Base base=Base.ini(); } }…
这是一块非常简单的Java代码片段: public class HelloWorld{ public static void main(String []args){ int product = 1; for (int i = 10; i <= 99; i++) { product *= i; } System.out.println(product); } } 为什么得出的结果是0呢? 问题现象 蛋疼的同学可能会发现这个程序执行的规律: 1 * 10 = 10 10 * 11 = 110 11…
ICEREST 是一个非常轻量级只有 200k 左右的 RESTful 路由框架,通过 ICEREST 你可以处理 url 的解析,数据的封装, Json 的输出,和传统的方法融合,请求的参数便是方法的参数,方法的返回值便是请求的返回值,原则就是:你会写方法,你就会用. 源代码  https://github.com/T-baby/ICEREST…
1.先说重点: 不同的编码格式占字节数是不同的,UTF-8编码下一个中文所占字节也是不确定的,可能是2个.3个.4个字节: 2.以下是源码: 1 @Test 2 public void test1() throws UnsupportedEncodingException { 3 String a = "名"; 4 System.out.println("UTF-8编码长度:"+a.getBytes("UTF-8").length); 5 Sys…
//StringTokenizer st1=new StringTokenizer("rirtirtjdlkfjlksadfoiyetryetretrejtlkjdsflkiuetuiojrelktjwlkeir","e");          // System.out.println(st1.countTokens()+"-----可以计算出现的次数");         System.out.println(st.countTokens()…
1.想在运行时抛出异常,终止方法的运行 private final Set<Long> THREADS = new HashSet<>(); public void someMethod () { if (THREADS.contains(Thread.currentThread().getId())) { throw new RuntimeException("该线程不能再调用这个方法"); } THREADS.add(Thread.currentThread…
n&1 把n与1按位与,因为1除了最低位,其他位都为0,所以按位与结果取决于n最后一位,如果n最后一位是1,则结果为1.反之结果为0.(n&1)==1: 判断n最后一位是不是1(可能用来判断n值的奇偶性).…
2)this代表的是本类的实例对象,不是什么调用本类的方法的对象.当你用new创建一个对象的时候,对象就已经在内存了.(具体的你的血jvm和反射).构造方法只是为了给对象里的属性赋值.在类里任何地方出现的this都是指的本类的实例对象,构造方法里的也…
1.接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法. 2.接口定义:和类定义不同,定义接口不再使用class关键字,而是使用interface关键字. 基本语法: [修饰符]interface 接口名 [extends 父接口1,父接口2...] { 零个到多个常量定义... 零个到多个抽象方法的定义... } 接口就是…
接口概念 接口可以理解为一种特殊的类,由全局常量和公共抽象方法组成.类是一种具体实现体,而接口定义了某一些类所要遵守的规范,接口不必关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类必须提供哪些方法. 接口定义 和类不一样,不用class定义,而用interface关键字定义.接口是用来继承.实现的,所以一般用Public修饰符,不使用private和protected.接口中的常量即使我们不加上public static final 修饰,系统也会帮我们自动加上,接口的方法是…
代码来源于高淇JAVA教学视频 谢谢高淇老师的教学. 因为自己在学习的过程中发现了很多困难点,总结下希望对自己接下来学框架提升.给像我一样得初学者方便. SORM框架是一个简单的ORM,关系对象映射,可以通过这个框架方便的更改和操作一些数据库的东西,在框架运行的时候也会根据数据库中的表生成相应的Javabean在po包下.通过直接对po包下的操作在运用query中的一些操作就可以实现对数据库的操作.思路会在代码中注释. QueryFactory直接生产出Query给用的人调用,Query作为一个…
对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常 (NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明 者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java. 我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间 在指针.操作符重载.多继承实现的原因,null却与此正好相反.好吧,我真的不知道这个问题的答案,我知道的是不管null…
今天看到Thinking in Java中一个关于Exception的例子:最后看到有一篇总结的比较好的文章, 这里拿来记录下, 文章地址是:http://blog.csdn.net/salerzhang/article/details/46581457  感谢原作者. class Annoyance extends Exception {} class Sneeze extends Annoyance {} class Human { public static void main(Strin…
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱.拆箱相关的问题. 以下是本文的目录大纲: 一.什么是装箱?什么是拆箱? 二.装箱和拆箱是如何实现的 三.面试中相关的问题 若有不正之处,请谅解和批评指正,不胜感激. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3780005.…
登录 (或注册) 中文 IBM 技术主题 软件下载 社区 技术讲座 打印本页面 用电子邮件发送本页面 新浪微博 人人网 腾讯微博 搜狐微博 网易微博 Digg Facebook Twitter Delicious Linked In   developerWorks 中国 技术主题 Java technology 文档库 深入分析 Java 中的中文编码问题 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多.本文将向你详细介绍…
堆和栈的内存管理 栈的内存管理是顺序分配的,而且定长,不存在内存回收问题:而堆 则是随机分配内存,不定长度,存在内存分配和回收的问题:堆内存和栈内存的区别可以用如下的比喻来看出:使用堆内存就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大.使用栈内存就象我们去饭馆里吃饭,只管点菜(发出申请).付钱和吃(使用),吃饱了就走,不必理会切菜.洗菜等准备工作和洗碗.刷锅等扫尾工作,他的好处是快捷,但是自由度小.操作系统中所说的堆内存和栈内存,在操作上有上述的特点,这里的堆内存实…