JAVA学习扩展
u013497151
这个作者很懒,什么都没留下…
展开
-
Java枚举的应用
为什么要用枚举? 比如要定义星期几,有的人用1-7,而有的用0-6,这就很容易导致问题的出现 枚举就是要让某个类型的变量的取值只能为若干个值中的一个,否则,编译器报错,枚举可以让编译器在编译时期就可以检测出源程序填写的非法值,而用普通变量模拟枚举的方法无法实现这一目标 用普通类来模拟实现枚举功能: 1.将构造方法私有 2.每个元素分别有一个公用的静态成员变量 3.可原创 2014-12-16 15:31:21 · 1375 阅读 · 0 评论 -
查漏补缺(java)
一、匿名数组: Java中提供一种创建数组对象并同时赋予初始值的简化书写形式 int[] a = {1,2,5,4}; 在不创建新变量的情况下,重新初始化一个数组 int b[] = {1,2,3,4}; a = b; 简化:a = new int[]{1,2,3,4}; 详见代码: public class Main { public static void原创 2014-09-22 22:27:51 · 1336 阅读 · 1 评论 -
JAVA输入输出总结
标准输入: Scanner cin = new Scanner(System.in); cin.nextLine();:输入一行,可能存在空格,功能特点类似于C中的gets(); cin.next();:输入一个单词,以空白字符为结束标志,类似于scanf(“%s”,str); cin.nextInt();:输入整形数据 cin.nextDouble();输入浮点性数据原创 2014-09-21 01:13:01 · 2404 阅读 · 0 评论 -
查漏补缺2(面试小题目)
//面试 public class Main { class demo { } public static void main(String[] args) { new demo();//报错,因为主函数是静态的 所以class demo要加static //static不能使用this } public void show() { new demo();原创 2014-09-25 01:37:13 · 1458 阅读 · 0 评论 -
《重构》第一章示例 — 体验重构的魔力 RefactorSample
一个月了,没有认真写博客,也没有认真学习,数据库的学习进度一直拖拖拉拉到现在也没有搞定,sad。。。 今天,看了一下《重构》的第一章,深深的被吸引了.... 示例 情景:顾客租电影,电影分三种,儿童票,普通片,新片,儿童片2天以内1.5元,超过两天,每一天加收1.5元,普通片3天以内2元,超过两天,每一天加收2元,新片每天3元,每租一次电影积分加一,如果是新片,且租期超过2原创 2015-01-21 19:40:56 · 1393 阅读 · 0 评论 -
Java线程范围内的共享数据(2)
实际上那么Map也就是模拟的ThreadLocal 每一个线程调用全局的ThreadLocal对象的set方法,就相当于往其内部的map记录新的键值对,键是Thread.current,值是data 线程结束后,可以选择调用ThreadLocal的clear()方法,释放内存,当某一个线程死掉后,可以用remove()移走 相关的变量,但是问题是,如何监听得知某个线程即将死亡?原创 2014-12-10 00:21:01 · 1967 阅读 · 0 评论 -
Java关于反射的加深理解
一、反射的基础 java程序中各个java类属于同一类事物,描述这类事物的java类名就是Class 比如说,很多人,用java来表示就用Person类,很多类,就用Class,Person类的实例对象比如张三、李四代表着一个个具体的人,而Class类就代表着各个类在内存中的字节码 一个类被类加载器加载进内存,会占用一片存储空间,这个空间的内容就是类的字节码,不同的类的字节码不同,所以他原创 2014-12-18 16:50:01 · 1656 阅读 · 0 评论 -
Java线程池的基础应用
了解:原子性操作类的基础用法 在java5以后,增加很多线程的内容,成为线程得并发库。 在java.util.concurrent包及子包的API帮助文档,上面有对并发库涉及内容 在java.util.concurrent.atomic包,有对基本数据,对数组中的基本数据,类中的基本数据等的操作 AtomicIneger类,可以解决多线程访问整数的问题 AtomicBoo原创 2014-12-12 00:42:43 · 1830 阅读 · 0 评论 -
Java多个线程之间处理共享数据的方式
题目要求: 有4个线程,其中两个线程每次对x加1,另外两个每次对x减1,如何实现? 分析: x就是这4个线程要处理的共享数据,不同种线程有不同的处理方式,但操作的数据是共同的,联想到“窗口买票问题”,但是卖票只是单纯的减。 所以,多个线程访问共享对象或数据的方式,先看,如果每个线程执行的代码相同,那么就可以使用同一个Runnable对象,这个对象中有被共享的数据,如原创 2014-12-11 00:50:54 · 2954 阅读 · 0 评论 -
Java线程范围内的共享数据(1)
线程范围内的共享数据,在JavaEE中比较常用,Android比较少 一个线程调用A,B,C三个模块,模块中的表达式或变量调用访问一个数据,这个数据可以是静态的 另一个线程也调用A,B,C三个模块,模块中的表达式或变量访问的数据,就不是刚才的数据,而是另一个 同样的代码,一个线程身上一分数据 import java.util.HashMap; import java.util.原创 2014-12-08 00:48:40 · 2019 阅读 · 3 评论 -
Java多线程间的通信问题扩展
到底什么是线程间的通信? 线程间需要通过一些协调性的通信,实现共同完成同一件任务,简单说就是,你想做这件事,我也想做这件事,我们两个相互交流,共同做这件事,而共同任务的同步性的实现,就必须通过同步锁,每一个对象实例都有自己的一把锁,当一个线程想要对这个任务进行处理的时候,就必须获得这把锁。线程之间锁的释放与获取,是通过Object类中的wait()/notify()方法实现的。wait()方法是原创 2014-12-01 22:27:25 · 1299 阅读 · 0 评论 -
Java关于注解的加深理解
一、入门注解的应用 经常会遇到这样的情况 package Tokyo.Hot; public class Demo { public static void main(String[] args) { new Thread().stop(); //画一条线,很明显是过时的方法 } }这是过时的方法,这时就要用到注解,告诉编译器,我知道这是过时的,我就喜欢用 @S原创 2014-12-15 01:47:26 · 2057 阅读 · 2 评论 -
JAVA大数值问题总结
大数值问题: 如果基本的整数(如:int、long)和浮点数的精度不狗满足需求时,那么就可以用java.math包中的两个类BigInteger(任意精度的整数)和BigDecimal(任意精度的浮点数). 这两个类可以实现人一次长度数字的数值 BigInteger a = BigInteger.valueOf(100);//把100转换为大数类型的整数使用valueOf()方法原创 2014-09-21 23:47:27 · 2171 阅读 · 0 评论