自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MangoMax的博客

talk is cheap, show me the code

  • 博客(107)
  • 收藏
  • 关注

原创 经典兔子繁殖问题的简单数学建模过程

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)其中 f(1) = f(2) = 1 (对) 从第3个月起,每个月兔子的总数f(n) 可以分为:第n新出生的兔子 f(newN) 第n月之前出生的兔子 f(...

2018-08-31 20:09:33 7348

原创 Java学习笔记93. 映射 Map

映射 Map 是一种双列的集合。它由Key 关键字, 和Value值,组成。给出一个关键字,就能访问到值。它们是一一对应的。这与数学上的映射的意义是一样的。下面用1个例子说明一下Map接口的简单用法Hash 哈希,代表哈希值,它的特点就是不保证元素的顺序。import java.util.*;public class demoHashMap{ public static void mai...

2018-03-15 22:00:12 218

原创 Java学习笔记91. 对于List类集的迭代 -- 使用ListIterator

对于类集,可以使用Iterator类进行迭代;对于List类的类集,还有ListIterator可以进行迭代,并具备set方法,可以更改里面的值。如下例:import java.util.*;public class demoListIterator{ public static void main(String[] args){        //创建ArrayList集合实例al,...

2018-03-15 17:26:17 350

原创 Java学习笔记90. 使用迭代方法访问类集

迭代方法大概是访问类集的最简单的方法了。迭代方法使用Iterator对象,或者类集对象的iterator方法。如下例:import java.util.*;public class demoIterator{ public static void main(String[] args){        //使用TreeSet集合,加入5个字符串        TreeSet<S...

2018-03-15 16:24:45 300

原创 Java学习笔记89. HashSet与TreeSet类

HashSet是散列表,按照哈希码的顺序进行排列,它的特征是不保证元素的顺序;TreeSet按照升序进行存储,而不论存入的顺序如何。下面写两个例子说明这两种集合类的区别:import java.util.HashSet;import java.util.TreeSet;public class demoHashSet{ public static void main(String[]...

2018-03-15 16:06:12 187

原创 Java学习笔记88. LinkedList的几个特殊方法

LinkedList类继承了Collection的通用方法,也拥有自己的几个特殊方法:void addFirst(Object obj)    在列表头添加一个对象元素void addLast(Object obj)       在列表尾添加一个元素Object getFirst()        得到列表第一位的元素    Object getLast()        得到列表的最后一位元素O...

2018-03-14 23:32:29 323

原创 Java学习笔记87. ArrayList类的两个使用例子

这里以ArrayList类的两个使用例子来展示一些常用的方法。ArrayList对象可以声明为ArrayList,也可以声明为List对象。一般都声明为List对象。因为这样方便将来转换类型,使得代码的重用性增强。第1个://引入包import java.util.ArrayList;public class testArrayList{ public static void mai...

2018-03-14 23:00:11 262

原创 Java学习笔记86. Collection接口中toArray( )方法的使用

Collection接口有15种方法,这里先总结一个toArray( )方法。toArray( ) 方法分为有参和无参两种,它们的返回值都是一个包含集合对象的所有元素的数组。无参方法的机制:将集合对象的元素全部转换为数组元素,并返回这个数组有参方法的机制:如果有带参数,那么参数也必须是一个数组;如果参数数组的长度与集合元素的长度相等,则将集合元素存入参数数组,并返回同样的数组;如果参数数组的长度小...

2018-03-14 21:40:09 1846

原创 Java学习笔记85. Collection接口

Collection接口是单列接口,下有2个子接口:List和Set之前总结过了,List和Set的主要区别在于是否有序。下面写一个例子,分别创建一个List接口的对象和Set接口的对象,并向内添加元素,然后输出,分析其区别。//引入4个包:List,ArrayList,Set,HashSetimport java.util.ArrayList;    import java.util.Lis...

2018-03-14 20:49:59 110

原创 PHP学习笔记10. PHP中的预定义变量

同常量一样,PHP也设计了一些预定义的变量。这些变量可以获取到用户会话,用户操作系统的环境,和本地操作系统的环境等信息。常用的预定义变量有:$_SERVER['SERVER_ADDR']   当前运行的脚本所在的服务器的IP地址$_SERVER['SERVER_NAME']    当前运行的脚本所在的服务器的名称$_POST    包含通过POST方法传递的参数的相关信息$_GET      包含...

2018-03-13 22:34:20 227

原创 PHP学习笔记9. 可变变量

可变变量理解起来其实非常简单,举例说明:现在有一个变量 $a, 它的值是字符串"hello",如果在这个变量前面加入一个美元符号,变成了$$a, 则这个变量名等价于$hello也就是说,第二个变量,把,第一个变量的值,直接拿来做变量名,有了2种写法。这两种写法是等价的。以下面的例子来说明:<?php $a = 'hello';    //第1个变量 $hello = 'wor...

2018-03-13 22:29:01 309

原创 PHP学习笔记8. 变量的作用域

变量都有其自己的作用范围,超出了范围就不再有效。PHP中的变量有3种作用范围:局部变量,全局变量,和静态变量局部变量在函数内部定义的变量就是局部变量,局部变量的作用域就是这个函数。如果在函数外部对局部变量进行复制,是无效的,因为那是对另一个变量的赋值。全局变量定义在所有函数以外的变量,就是全局变量。全局变量的作用域是整个PHP文件。但是它的作用域达不到函数内部。如果想让一个在函数体内部的变量成为全...

2018-03-13 22:20:15 111

原创 PHP学习笔记7. PHP中的变量

变量名PHP中的变量名的标识符都以$开头,并区分大小写,变量名要符合标识符的规范,即以字母和下划线开头,由字母、数字下划线组成。给变量赋值变量的赋值有3种方式,一种是直接赋值,一种是用一个变量名给另一个变量名赋值,最后一种是以引用的方式来赋值。第1种最简单,比如:$abc = 'abc';$pi = 3.14;$week = 7;可以看到,PHP并不需要先声明变量名,可以直接赋值。第2种,是先...

2018-03-13 21:19:43 114

原创 PHP学习笔记6. PHP中的常量

常量的命名常量可以使用数字,字母和下划线来命名,但是不能以数字开头如: MAX_VALUE, MIN_VALUE1, _TIME常量的声明常量的声明,使用define函数,define函数的语法是:define(string constant_name,mixed value,case_sensitive=true)constant_name, 常量名mixed value,常量值case_sen...

2018-03-13 20:59:34 161

原创 PHP学习笔记5. 对数据类型的检测

PHP中内置了许多函数来检测目标数据是否是制定的数据类型,如果是则返回true,否则返回false。如:is_bool, 如 is_bool(true), is_bool(false), 都返回trueis_array, 如is_array($str)is_numeric, 检测变量是否是数字,或者是否全部由数字组成,如 is_numeric('5'), 返回true类似的还有is_string,...

2018-03-13 17:05:35 140

原创 PHP学习笔记4. 数据类型的转换

PHP虽然是弱数据类型的语言,但是有时候,也需要进行数据类型的转换。类型转换有2种方法,第1种方法很简单,用括号括起来相应地类型名称即可,如:(boolean)    转换为布尔型    (string)    转换为字符型(integer)转换为整型需要注意的是:1. 在转换为boolean型时,null,0,和未赋值的变量或数组会被转换为false,其它会被转换为true2. 在转换为inte...

2018-03-13 16:57:08 170

原创 PHP学习笔记3. PHP中的空值

PHP中的空值,即NULL,或者null,这两个都可以,代表没有为变量赋予任何值。可以用Is_Null( ) 方法判断某个变量是否为NULL,也可以用unset( )函数将变量清空。其中unset函数没有返回值。如下例:<?php $s1 = null;    //设$s1为空 $s2 = 'ssss'; echo Is_Null($s1);    //不会输出,因为...

2018-03-13 16:36:29 217 1

原创 PHP学习笔记2. PHP的基本数据类型

PHP总共支持8种数据类型:1. 布尔型 boolean:true or false2. 整型  integer3. 浮点型 float/double4. 字符串型 string5. 数组型 array6. 对象 object7. 资源 resource8. 空 NULL与其它编程语言不同,PHP的数据类型不是先声明,再使用。而是先写出,然后由解释器决定它的类型。布尔型数据这是PHP中最简单的数据...

2018-03-13 16:13:31 184

原创 PHP学习笔记1. PHP的标记风格与注释

PHP是服务器端的编程语言。它的书写方式有4种,即它有4种标记的风格:1. XML 标记风格<?php echo "这是XML标记的风格";?>2. 脚本风格<script language="php"> echo '这是脚本风格的标记';</script>3. 简短风格<? echo '这是简短风格的标记';?>4. ASP 风...

2018-03-13 13:52:03 359

原创 Java学习笔记84. Java的集合框架

集合是什么?集合就是变量的组合,把许多变量组合在一起。有的人可能会想到,数组也是变量的组合呀。既然有了数组,为什么还要有集合呢?首先,与数组不同的是,集合是引用变量的组合,也就是说,它所存储和处理的是对象的引用。其次,数组一旦定义,它的长度就是固定的,不能改变。而集合可以动态地增减元素,对内存的利用更加有效。集合的框架集合中所包含的内容很多,很庞大,所以才说是集合框架。其中关键的集合有两种:一种是...

2018-03-12 14:37:14 137

原创 Java学习笔记83. 枚举的构造方法和接口

枚举相当于一个类,所以它也是有构造方法的。如果显式地写出了枚举的构造方法,那么就必须在创造枚举对象时,相应地显式引用,否则就会出错。这也是Java的运行机制之一。枚举中的每一个元素,其实就相当于一个对象的引用,这个元素可以有方法和字段。比如:enum color{ red("hongse"),yellow("huangse"),green("lvse"),black("heise"); p...

2018-03-12 00:04:25 239

原创 Java学习笔记83. 枚举类和常用的枚举方法

枚举实际上是一个类,在java.lang包里,java为枚举类定义了许多方法,使用也很简单。下面用几个例子来总结一下:/*使用values()方法遍历输出当前对象的取值范围,values方法的返回值就是当前对象的取值范围*/enum color {yellow,red,brown};public class demobianli{ public static void main(Str...

2018-03-11 23:15:06 154

原创 Java学习笔记82. 枚举 enum

枚举就是列举。就是把一些属性值列举出来,组成一个列举的集合。枚举中的值通常都是见明知义的属性值。这样可以增加程序的可读性,也可以降低书写程序的难度。枚举的定义方法是:enum 枚举名 {属性1,属性2,属性3,...};枚举使用时使用 属性名.属性值 的方法来访问。如下所示:enum color{red,yello,green};         //定义枚举color,并列举3个值public...

2018-03-11 22:09:03 156

原创 Java学习笔记81. 线程间的通信 —— wait( ),notify( ),和 notifyAll( )

线程之间是可以通信的,线程间通信的方法有wait,notify和notifyAll。这3个方法是定义在Object类里面的,一切类和对象都天然地可以使用者3个方法。但是使用这些方法的前提是在synchronized修饰的语句块下。wait的意义是中止当前线程,释放锁,并等待;notify的意义是结束第一个开始等待中的线程,使其处于就绪状态,但是不释放锁。notifyAll的意义是结束所有正在等待中...

2018-03-11 21:50:58 149

原创 Java学习笔记80. 关于死锁

死锁,本质上是一个哲学问题。当一个线程先占有了同步类(synchronized)的资源A,同时接着要求同步类的资源B。而恰恰在这中间,另一个线程捷足先登,占有了同步类的资源B,同时接着要求资源A。而此时资源A已经被第一个线程占有了。于是,这两个线程的代码都执行不下去了,它们都在等对方释放资源,好继续往下执行,这时候,程序就形成了“死锁”的状态。所谓同步类的资源,就是被synchronized关键字...

2018-03-11 20:36:06 125

原创 Java学习笔记79. 多线程的同步机制 -- synchronized 关键字

当系统中存在多个线程,而多个线程所操作的都是同一块内存区域,那么,就有可能产生相互干扰的情况。比如下面的情况:class threaddemo implements Runnable{    //实现了Runnable接口的类 private int n = 0;    //私有全局变量 public void run(){    //覆盖run方法 test();...

2018-03-11 19:02:07 121

原创 Java学习笔记78. 线程的中断入门 —— interrupt方法

关于线程的中断的知识点比较多,这里暂时浅尝辄止,只使用interrupt方法做一个例子,显示中断方法的使用。例子如下:public class testInterrupt extends Thread{        //线程类testInterrupt,用来测试中断的方法 private boolean blockflag = false;        //设置一个旗标,控制循环的退出...

2018-03-11 17:28:57 129

原创 Java学习笔记77. 线程的等待方法 —— join( )

对于一个已经在运行的线程,可以使用join方法使其对CPU进行独占,一直到运行完这个线程后,再运行其它的线程。现在先来总结一下join的无参方法:class demojoin extends Thread{        //线程类 public void run(){        //线程的run方法 for(int i=1;i<8;i++)    //输出数字1...

2018-03-11 16:25:00 130

原创 Java学习笔记76. 线程的让步方法--yield

yield是屈服和放弃的意思。在Java中,它引申使用,意思是让步给后面的线程,它重新排队,处于就绪状态。yield方法不会产生任何异常,它的使用方法如下:class demoThread extends Thread{    //线程类demoThread public void run(){        //覆盖run方法 for(int i=1;i<10;i+...

2018-03-11 16:05:55 280

原创 Java学习笔记75. 线程的睡眠方法

人在工作的时候,不会24小时一直工作,会有休息的时间,也会有吃饭的时间,这就是工作中间的间隔。线程也一样,有时候也需要间隔一点时间,再做下一个动作。这就是sleep方法的作用了,如下:class testSleep extends Thread{    //线程类testSleep public void run(){        //线程类的run方法,输出1到8的数字 ...

2018-03-11 15:33:50 106

原创 Java学习笔记74. Java线程的优先级

不同的线程就像是不同的工作小分队,而系统的计算资源就像是工作场所,工作场所一次只能让一个线程来工作,与此同时,其它的线程就需要等待。但是不同的小分队的重要程度不同,就应该分别看待,这就是优先级的设定。Java用setPriority方法来给线程设置优先级, 数字1~10分别代码10个不同的优先级,1的优先级最小,10的优先级最高,如果不设定优先级,则默认的优先级为5。Java还用3个常量分别代表高...

2018-03-11 15:10:04 136

原创 Java学习笔记73. 后台线程与setDaemon( )方法

Daemon是魔鬼的意思。魔鬼是很可怕的,也是很有力量的。这与后台进程有异曲同工之妙。只要进程有一个前台线程在运行,这个进程就不会结束;但是如果一个进程只有后台线程在工作,那么这个进程就结束了。后台线程:如果一个线程在启动前设置为后台线程,则这个线程就是后台线程。设置方法就是setDaemon方法。如下例:Thread t = new Thread();t.setDaemon(true);   ...

2018-03-09 17:21:46 474

原创 Java学习笔记72. 操作线程 -- 判断线程是否启动

isAlive( ) 方法是用来判断线程是否启动的方法。它的返回值是布尔型,启动为true,没启动为false。下面的代码说明了isAlive的使用方法:public class demoisAlive extends Thread{    //创建线程类 public void run(){        //覆盖线程类的run方法 for(int i=1;i<6;...

2018-03-09 14:44:53 5163

原创 Java学习笔记71. 操作线程 -- 取得和设置线程的名称

人有名字,线程也有;人有重名的,线程也可以重名。人的名字可以出生前起,也可以出生后起,线程也一样。人可以改名,线程也可以改名。得到线程名字的方法是getName(),设置线程名字的方法是setName()。下面的程序使用了getName方法得到线程的名字public class demoSetName extends Thread{    //定义一个线程类 public void run...

2018-03-09 14:16:16 137

原创 Java学习笔记70. 线程的生命周期

人有生老病死,线程也有。在生灭之间的线程,细分为5种状态:1. 创建: 多线程实例之后,未使用start方法启动线程之前2. 就绪:使用start方法启动线程,但是没有被CPU调度进入运行3. 运行:被CPU调度进行运行4. 阻塞/等待:运行之后,因为某些原因,暂时中止运行的状态5. 死亡:线程的代码执行完毕,或者系统将此线程终止...

2018-03-09 13:09:02 99

原创 Java学习笔记69. 运行线程 RUN THREADS

前面总结了,线程是一种容器,运行代码的容器。这些容器都在更大的容器进程(Process)里。默认的启动的线程是main方法所在的线程,如果要使用多线程,就要启动它。有两种方法可以启动多线程:1. 通过创建线程对象,然后使用线程对象的start方法来启动线程2. 通过创建实现了Runnable接口的对象,再把此对象作为参数,传递给Thread类的构造方法,构造出Thread的一个实例,再使用这个实例...

2018-03-09 11:38:43 470

原创 Java学习笔记68. 通过Runnable接口创建多线程

我们知道,Java中是不允许多重继承的,有的类需要继承某些特性,同时也需要创建多线程。这样,就不能同时继承Thread类了。为了应对这种情况,java中可以运用Runnable接口来创建多线程,其语法如下:class 类名称 implements Runnable{ 属性; 方法; 修饰符 run(){ 以线程处理的程序; }}我的理解是,线程就好...

2018-03-09 00:30:50 118

原创 Java学习笔记67. 创建多线程的方法 -- 通过继承thread类创建多线程

要想使用多线程,就要首先创建多线程。创建多线程的方法,一种是通过创建thread类的对象来创建多线程,一个是通过runnable接口创建多线程。首先来总结通过创建thread类的对象的方法:class 类名称 extends Thread{ 属性; 方法; 修饰符 run(){ 以线程处理的程序; }}其中,run方法是Thread类的一个方法,定...

2018-03-09 00:02:50 1173

原创 Java学习笔记66. 初识多线程

小时候学习,最被告诫的是不要一心多用,要专心一致。专心致志是非常好的,但是如果能够一心多用,还能面面俱到,不是更好吗?对人也许难了一点。但是对计算机就会很容易。人类不可以一边开车,一边看手机。但是计算机就可以,自动驾驶系统可以负责开车,音乐播放系统则可以同时播放音乐。二者可以使用同一个CPU,由CPU分配资源来运行。多线程大概就是一心多用的同义词。线程是CPU能够处理的最小单位,而进程则是系统所能...

2018-03-08 23:33:10 104

原创 编程学习有感

学习Java一个多月时间了。开始学的时候进步很慢。一时也找不到合适的方法。就一边看书,一边练习书上的例子。有时候觉得例子简单,就跳过去了。有时候个别章节读不太懂,也就放过去了。这样下来,似乎进度很快,但是其实很多细节都没有搞懂。越学到后面,就越吃力。最后索性一点也学习不下去了。真正实践了那条经典路线“从入门到放弃”。看视频,看书,记笔记,这些方法我都在用,可是效果就是一般般。我还在淘宝上买了好多项...

2018-03-08 23:05:30 422 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除