`
紫梦飘逸
  • 浏览: 46243 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
     Java中的数据类型分为两大类:一类是引用类型,也叫类类型,是指通过类创建的对象的变量名字;一类是原始类型,即8大基本类型,这类型的数据在调用传递时尊实“值传递”规则。          String是Java中的一个类,而不是一种基数据类型,因为它有自己的方法和属性。为什么我们说“特殊的String”呢?String是一个类,String对象肯定就是引用类型,但它却是跟原始类型一样,遵守值传递的规则;这是因为String类在JVM中是被特别设计过的,因为它的用量特别大,为了提高效率,String通过值传递方式来使用。  
          从程序上看,递归表现为自己调用自己,递推则没有这样的形式。 递归是从问题的最终目标出发,逐渐将复杂问题化为简单问题,最终求得问题是逆向的。 递推是从简单问题出发,一步步的向前发展, 最终求得问题。是正向的。 递归中,问题的n要求是计算之前就知道的,而递推可以在计算中确定, 不要求计算前就知道n。一般来说,递推的效率高于递归(当然是递推可以计算的情况下)  
线程间的通信: 其实就是多个线程再操作同一个资源,但是操作的动作不同   当某个线程进入synchronized块后,共享数据的状态不一定满足该线程的需要,需要其他线程改变共享数据的状态后才能运行,而由于当时线程对共享资源时独占的,它必须解除对共享资源的锁定的状态,通知其他线程可以使用该共享资源。 Java中的wait(),notify(),notifyAll()可以实现线程间的通信。 生产者--消费者问题是典型的线程同步和通信问题 /*** 生产者和消费者问题,生产者生成出产品,消费者去购买产品* 在这里创建三个线程,一个主控线程,一个生产者线程,一个消费
    今天开始学习java中的多线程,在看书的过程中写了一个实例来练习多线程的用法,下面把代码放到博文里,里面很多的注释,可以帮助理解。 运行结果如下: main:启动MessageLoop线程。。。main:等待MessageLoop线程结束。。。

Java多线程

线程的简单学习笔记: 1、进程与线程的概念 进程:从用户角度看进程是应用程序的一个执行过程。 从操作系统核心角度看进程代表的是操作系统分配的内存和CPU时间片等资源的基本单位,是为正在运行的程序提供的运行环境。 线程:是程序执行流的最小单位(处理器调度的最小单位) 线程是一个程序中一个单一的顺序控制流程。 线程是程序执行的一条路径,一个进程中可以包含多条线程。   2、创建线程 在线程类使用new关键字实例化之后且在调用start()方法之前,线程处于创建状态,处于创建状态的线程仅仅分配了内存空间,属于生命周期的初始状态。 启动线程:类Thread定义了start()方法 ...
    哈夫曼树:    哈夫曼树首先属于树,有根节点,枝节点和叶子节点。在这里主要突出就是“权值”一词,权值在哈夫曼树里的定义就是节点的大小,而加权路径就是权值和路径长度的乘积,通过对权值和加权路径的定义,我们在这里也自然而然的引入哈夫曼树的构造,哈夫曼树是叶子节点的加权路径和的最小值而构造的,而且在这里要说的一句是:树是对称的,     具体构造时:先在给定的一些点中取出两个最小的点,然后求出两个点的和,作为这两个点的根节点,然后在从给出的点里取出两个点,构造根节点,重复这个过程,在用所求出的根节点求出它的根节点,重复这个过程,整个哈夫曼树就这么构造完成了。  
  数据结构之链表:      本期小编要和大家谈论得就是链表,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂     链表分为单向链表,双向链表,环形链表. 链表和数组的最大区别就是:数组的内存地址是连续的,而链表的内存是不是连续的,不好说,这个取决于系统分配的内存地址,链所存储的数据类型很多。在链表的节点中存储的是地址和 内容, 因而,链表一般 ...
      作为一个新手,尝试着自己做一个简单的雷电游戏简直就是忒受摧残。首先在此过程中明白线程的使用方法,然后各种关系的调用,之后还要把飞机移除队列。 在此过程中有时画不出自己的对象,有时打中敌人的飞机,敌人的飞机打不死,更有时把窗体刷新一次,窗体 就直接黑屏,甚至 线程一直在运行 ,你还关不了窗体,,,,,各种问题,各种好玩,等等等等.....终于我的第一个可以打死敌人飞机的小程序诞生了,心里一团热气就那么升气来了.      
  简单写下两种排序方法: Comparable接口和Comparator接口,两个都是用来实现集合中元素的比较、排序的,只是两个接口使用的方式有些区别: (1)、Comparable位于java.lang下。 接口中的方法有: int compareTo(Object obj) Comparator位于java.util下 接口中的方法有两个: Int compare(Object obj1,Object obj2) Boolean equals(Object obj) 因为Comparable位于java.lang下显然默认的是Comparable下的方法。 (2)、Comparabl ...
   为什么使用集合框架,而很少数组作为存储结构 1),数组长度,不能动态扩容,集合框架无需声明存储大小,可以动态扩容 2),数组存储类型单一,集合框架可以存储任何类型,加上泛型, 可以避免强制转换 3),数组操作方法少,集合框架操作元素方法多,便于管理 常见的集合有: List集合:ArrayList和linkedList Set集合:HashSet 和 TreeSet Map集合:HashMap 和TreeMap 1)list集合:有顺序的,可以重复的,没有排序的集合,通过索引存取 ArrayList:是实现基于动态数组的集合,随机访问速度快 linkedList:基于链表的集合,插入和 ...
    浮躁的人容易问:我到底该学什么----别问,学就对了;    浮躁的人容易问:Java有钱途吗;----建议你去抢银行;    浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!    浮躁的人分两种:只观望而不学的人;只学而不坚持的人;    浮躁的人永远不是一个高手 1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。 2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。 3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永 ...
      今天终于在我精心的研究下,用那个传说种很容易上手的java语言编写了一个登录界面,特来和各位道友进行分享,各位求指点啊,不要笑呢?呵呵,心情大好。  
   override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,而我们在实现时,就需要实现接口声明的所有方法。除了这个典型的用法以外,我们在继承中也可能会在子类覆盖父类中的方法。    在覆盖要注意以下的几点: 1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果; 2、覆盖的方法的返回值必须和被覆盖的方法的返回一致; 3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类; 4、被覆盖的方法不能为private,否则在其子类中只是 ...
       求支持,求关注,开始java之路..  
Global site tag (gtag.js) - Google Analytics