标签:Java 递归 Object 算法 泛型 数据结构 public MemoryCell
学习笔记(一)
主要是贴自己的部分源码
引论
简要复习递归
概括本书的Java语言的某些重要特点
递归简论
/*
* @Author: 橘足轻重
* @Date: 2021-01-11 15:13:06
* @Last Modified by: 橘足轻重
* @Last Modified time: 2021-01-11 15:26:36
*/
public class chap1 {
public static void main(String[] args) {
printOut(123456789);
int x = f(2);
System.out.println("一个递归方法");
System.out.println(x);
}
/**
* 逐个字符打印
*
* @param n 这里系统标准输出流每次都只打印一个字符
*/
private static void printOut(int n) {
if (n >= 10)
printOut(n / 10);
System.out.println(n % 10);
}
private static int f(int x) {
if (x == 0)
return 0;
else
return 2 * f(x - 1) + x * x;
}
}
if (x == 0)
return 0; //这是一个基准情况
递归的4条基本法则:
1、基准情形。必须总要有某些基准情形,它无需递归就能解出。
2、不断推进。对于那些需要递归求解的情形,每一次递归调用都必须要使状况朝向一种基准情形推进。
3、设计法则。假设所有的递归调用都能运行。
4、合成效益法则。在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作。
实现泛型构件pre-Java 5
使用Object表示泛型
Java中的基本思想就是可以通过使用像Object这样适当的超类来实现泛型类。在下图中所示的 MemoryCell类就是这样一个例子。
/*
* @Author: 橘足轻重
* @Date: 2021-01-11 20:40:02
* @Last Modified by: 橘足轻重
* @Last Modified time: 2021-01-11 20:40:02
*/
public class MemoryCell {
public Object read() {
return storedValue;
}
public void write(Object x) {
storedValue = x;
}
private Object storedValue;
}
当我们使用这种策略时,有两个细节必须要考虑。第一个细节在图1-6中阐释,它描述一个main方法,该方法把串"37"写到MemoryCell对象中,然后又从MemoryCell对象读出。为了访问这种对象的一个特定方法,必须要强制转换成正确的类型。(当然,在这个例子中,可以不必进行强制转换,因为在程序的第9行可以调用toString()方法,这种调用对任意对象都是能够做到的)。
public class TestMemoryCell {
public static void main(String[] args) {
MemoryCell m = new MemoryCell();
m.write("37");
String val = (String) m.read();
System.out.println("Contents are: " + val);
}
}
基本类型的包装
java基本类型有四类八种
整型:byte、short、int、long
浮点型:float、double
字符型:char
布尔型:Boolean
包装类(首字母大写,仅有两特殊)
Boolean,Byte,Character,Short,Integer,Long,Float,Double
String是引用类型
未完待续
不过要等好久才有空更新了,先发了
标签:Java,递归,Object,算法,泛型,数据结构,public,MemoryCell 来源: https://blog.csdn.net/weixin_44510587/article/details/112472541
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。