东莞网站建设基本流程图,软件公司介绍,汽车配件加工网,南昌网站开发模板一、前言
在学习java的时候#xff0c;我印象最深的一句话是#xff1a;程序数据结构算法#xff0c;对于写java程序来说#xff0c;这就是java的入门。 二、java基本数据结构与算法
1、数据类型
java中的数据类型8种基本数据类型#xff1a;
整型 byte 、short 、int…一、前言
在学习java的时候我印象最深的一句话是程序数据结构算法对于写java程序来说这就是java的入门。 二、java基本数据结构与算法
1、数据类型
java中的数据类型8种基本数据类型
整型 byte 、short 、int 、long 浮点型 float 、 double 字符型 char 布尔型 boolean
还有包装类型。所谓包装类型可以理解为都是类。
2、java常见数据结构
栈、队列、数组、链表和红黑树
3、java常见算法算法
排序算法冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序等。
查找算法顺序查找、二分查找、哈希查找等。
字符串匹配算法暴力匹配、KMP算法、Boyer-Moore算法等。
图论算法最短路径算法、最小生成树算法、拓扑排序等。
动态规划算法背包问题、最长公共子序列、最长上升子序列等。 三、如何验证程序数据结构算法 /*** 获取当前时间格式为yyyy-MM-dd HH:mm:ss* return*/public static String getDateStr() {SimpleDateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);return df.format(new Date());} 比如上面这段代码获取当前时间格式为yyyy-MM-dd HH:mm:ss
SimpleDateFormat df new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);
SimpleDateFormat 这个首先是个类型它的算法就是构造函数
new SimpleDateFormat(yyyy-MM-dd HH:mm:ss)
和
df.format(new Date());
这两个算法
返回的String类型其实也就是数据结构
这一段程序涉及到两个数据结构和两个算法
算法1 public SimpleDateFormat(String pattern){this(pattern, Locale.getDefault(Locale.Category.FORMAT));} 将这种格式 yyyy-MM-dd HH:mm:ss 作为参数加工
加工算法1 public SimpleDateFormat(String pattern, Locale locale){if (pattern null || locale null) {throw new NullPointerException();}initializeCalendar(locale);this.pattern pattern;this.formatData DateFormatSymbols.getInstanceRef(locale);this.locale locale;initialize(locale);}
加工算法2 /* Initialize compiledPattern and numberFormat fields */private void initialize(Locale loc) {// Verify and compile the given pattern.compiledPattern compile(pattern);/* try the cache first */numberFormat cachedNumberFormatData.get(loc);if (numberFormat null) { /* cache miss */numberFormat NumberFormat.getIntegerInstance(loc);numberFormat.setGroupingUsed(false);/* update cache */cachedNumberFormatData.putIfAbsent(loc, numberFormat);}numberFormat (NumberFormat) numberFormat.clone();initializeDefaultCentury();}
一层一层下来的算法还是很多的。所以 获取当前时间格式为yyyy-MM-dd HH:mm:ss 涉及的算法其实很多。但我们最终程序输出的是字符串类型的 yyyy-MM-dd HH:mm:ss里面嵌套的函数是一个个算法当然算法了也涉及到其他的数据类型和结构
一次类推 /* Initialize the fields we use to disambiguate ambiguous years. Separate* so we can call it from readObject().*/private void initializeDefaultCentury() {calendar.setTimeInMillis(System.currentTimeMillis());calendar.add( Calendar.YEAR, -80 );parseAmbiguousDatesAsAfter(calendar.getTime());}/* Define one-century window into which to disambiguate dates using* two-digit years.*/private void parseAmbiguousDatesAsAfter(Date startDate) {defaultCenturyStart startDate;calendar.setTime(startDate);defaultCenturyStartYear calendar.get(Calendar.YEAR);} 推到最下层
我们发现是这样的 SuppressWarnings(ProtectedField)protected int fields[];
就是定义了一个int类型的数组所以底层还是数据结构。