- 浏览: 33068 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
hyjasonlee:
birthday 为Date 能取数据出来吗?我用sqlite ...
利用dbutils框架简化jdbc开发
----------------------------android培训、java培训、期待与您交流!----------------------------------
感想:
- 这几天学习了毕老师的基础视频中的:数组、排序、查找、进制转换、面对对象的概念部分,虽然在上学的时候学习过java,但是仍然受益匪浅,学到了很多细节的东西。
- 要学到新的知识要先把”自己的瓶子倒空“,这样才能更好的获取新的知识,虚心接受。
擦缺补漏:
- 栈内存:
数据使用完成后,会自动释放。
- 静态代码块:
随着类的加载而执行,只执行一次,用于给类进行初始化。
- 构造代码块:
用于给对象初始化。
- Person p = new Person("dupengtao",23);该句话都做了什么?
1)因为new用到了Person.class 所以会先找到Person.class文件并加载到内存中。
2)执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
3)在堆内存中开辟空间,分配内存地址。
4)在堆内存中建立对象的特有属性、并进行默认初始化。
5)对属性进行显示初始化。
6)对对象进行构造代码块初始化。
7)对对象进行对应的构造函数初始化。
8)将内存地址付给栈内存中的P变量。
- 单例模式三部曲:
1)将构造函数私有化。
2)在类中创建一个个本类对象。
3)提供一个可以获取到该对象的方法。
/* 这个是先初始化对象。 称为:饿汉式。 Single类一进内存,就已经创建好了对象。 class Single { private static Single s = new Single(); private Single(){} public static Single getInstance() { return s; } } */ //对象是方法被调用时,才初始化,也叫做对象的延时加载。成为:懒汉式。 //Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。 class Single { private static Single s = null; private Single(){} public static Single getInstance() { if(s==null) { synchronized(Single.class) { if(s==null) s = new Single(); } } return s; } } //记录原则:定义单例,建议使用饿汉式。 class { public static void main(String[] args) { System.out.println("Hello World!"); } }
- 十进制转换到十六进制
public static void toHex(int num) { StringBuffer sb = new StringBuffer(); for (int x = 0; x < 8; x++) { int temp = num & 15; if (temp > 9) { sb.append((char) (temp - 10 + 'A')); } else { sb.append(temp); } num = num >>> 4; } System.out.println(sb.reverse()); }
编码:
1.ASCII码表:
键盘上所有的键都对应一个字符,每个字符都对应一个码值
ASCII编码的文件,每个字符占1个字节
有一个特殊的键"Enter",对应两个字符回车换行(\r\n)
2.gb2312码表: 兼容了一个ASC码表
英文占1个字节,是一个正数
中文占两个字节,两个都是负数
3.gbk码表: 升级
英文占1个字节,是一个正数
中文占两个字节,第一个是负数,第二个可正可负
4.unicode码表:国际码表
所有的字符都占两个字节,
前两个字节为特征码
5.UTF-8码表: 国际码表
每个字符占1~3个字节,实验证明,英文占1个,汉字占三个
前三个字节为特征码
位运算符
&: 任何数与0&结果都为0,与1&结果为自身
|:任何数与1|结果都为1,与0|结果为自身
^: 任何数与一个指定的数异或两次,其结果为自身(可用于加密文件)
<<: 左移,高位抛弃,低位补0, 01101110 <<2 --> 10111000
>>: 右移,低位抛弃,高位补什么看符号位 10110111 >> 3 --> 11110110
>>>: 无符号右移,低位抛弃,高位补0,不考虑符号 10110111 >>> 3 --> 00010110
>>>:无无符号右移 将二进制的每一位向右移,高位补0。正数移动没区别,负数移动后变为正数。
内存结构
Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域
的划分,因为每一片区域都有特定的处理数据方式和内 存管理方式。
栈内存
- 用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存
- l 数组和对象,通过new建立的实例都存放在堆内存中。
- l 每一个实体都有内存地址值
- l 实体中的变量都有默认初始化值
- l 实体不在被使用,会在不确定的时间内被垃圾回收器回收
方法区,本地方法区,寄存器
最后附上各种排序的效率测试:
public static void bubbleSort(int a[]) { int len = a.length; for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - 1 - i; j++) { if (a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } public static void selectSort(int a[]) { int temp = 0; int len = a.length; for (int i = 0; i < len - 1; i++) { int min = a[i]; int index = i; for (int j = i + 1; j < len; j++) { if (min > a[j]) { min = a[j]; index = j; } } temp = a[i]; a[i] = a[index]; a[index] = temp; } } public static void insertSort(int a[]) { int len = a.length; for (int i = 1; i < len; i++) { int temp = a[i];// 待插入的值 int index = i;// 待插入的位置 while (index > 0 && a[index - 1] > temp) { a[index] = a[index - 1];// 待插入的位置重新赋更大的值 index--;// 位置往前移 } a[index] = temp; } } public static int partition(int a[], int low, int height) { int key = a[low]; while (low < height) { while (low < height && a[height] >= key) height--; a[low] = a[height]; while (low < height && a[low] <= key) low++; a[height] = a[low]; } a[low] = key; return low; } public static void quickSort(int a[], int low, int height) { if (low < height) { int result = partition(a, low, height); quickSort(a, low, result - 1); quickSort(a, result + 1, height); } } 测试结果 ------------------------------------------ 测试数据10000 冒泡排序:120ms 选择排序:32ms 插入排序:20ms 快速排序:7ms ------------------------------------------ 测试数据100000 冒泡排序:13098ms 选择排序:2334ms 插入排序:1264ms 快速排序:23ms 效率差距很大啊!!!!
·
发表评论
-
黑马程序员_javaweb(response)
2012-12-02 21:29 765----------------------------and ... -
黑马程序员_javaweb(servletcontext)
2012-12-02 21:21 805----------------------------and ... -
黑马程序员_交通灯系统和银行调度系统
2012-12-02 21:07 674----------------------------and ... -
黑马程序员_高新技术
2012-12-02 10:08 772----------------------------and ... -
黑马程序员_基础复习八(网络编程)
2012-11-29 23:48 892----------------------------and ... -
黑马程序员_基础复习七(IO)
2012-11-28 22:59 623----------------------------and ... -
黑马程序员_基础复习六(集合)
2012-11-26 23:18 616----------------------------and ... -
黑马程序员_基础复习五(线程)
2012-11-25 18:17 721----------------------------and ... -
黑马程序员_基础复习四(异常)
2012-11-24 22:04 694----------------------------an ... -
黑马程序员_基础复习三(内部类、接口)
2012-11-23 08:22 756----------------------------and ... -
黑马程序员_基础复习二(面向对象、多态)
2012-11-19 21:06 562----------------------------and ...
相关推荐
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
7. Criteria查询:除了HQL,Hibernate还提供了Criteria API,它提供了一种更加面向对象的方式来构建动态查询,使得查询更加灵活。 8. Native SQL查询:虽然Hibernate提供了面向对象的查询方式,但在某些特定场景下...
黑马程序员__移动商城项目实战 包括黑马程序员乐淘商城实战和慕课React+Antd
1.1 ORM概述:ORM是Object-Relational Mapping的缩写,它提供了一种将面向对象的编程模型与关系型数据库之间的映射机制,使得开发者可以使用面向对象的方式来操作数据库,避免了繁琐的SQL编写。 1.2 Hibernate概述...
黑马程序员_iOS基础视频_最适合初学者入门video,百度云链接。
马程序员_黎活明__Spring如何装配各种集合类型的属性.ppt )
黑马程序员_毕向东_Java基础视频教程第05天-01-面向对象(概述).avi
《黑马程序员_Java基础辅导班教程课件[第01期]第15天》是针对初学者设计的一堂深入浅出的Java编程课程,旨在帮助学员巩固和深化Java基础知识。这堂课件涵盖的内容广泛且实用,对于想要在IT行业中开启Java开发旅程的...
3. **面向对象编程**:深入讲解Java的核心特性——面向对象编程,包括类的定义、对象的创建与使用、封装、继承和多态等概念。 4. **数组和集合框架**:介绍数组的使用,以及ArrayList、LinkedList、HashSet、...
### 黑马程序员_超全面的JavaWeb教程-视频+...无论是对于在校学生还是职场人士来说,《黑马程序员_超全面的JavaWeb教程》都是一份非常宝贵的资源。希望每位读者都能够从中获益,并在未来的职业生涯中取得更大的成就!
在"黑马程序员_Java基础辅导班教程课件[第01期]第13天"中,我们聚焦于Java编程语言的基础知识,这是一门面向初学者的课程,旨在帮助学员快速掌握Java开发的基本技能。第13天的课程通常会涵盖上一天(第12天)所学...
【描述】中提到的"( 01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.zip )" 暗示这门课程可能包含一系列视频教程,首个文件"01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.avi"很可能是课程的开篇...
黑马程序员_android实例教程,网上找的的安卓教材,真心不错。
传智播客_javaWEB讲义和笔记资料_day09 黑马程序员_javaWEB教程讲义和笔记资料_day09
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
总结来说,"黑马程序员_毕向东_Java基础源码.rar"为初学者提供了一个深入学习Java编程的宝贵平台。通过学习和实践这些源代码,不仅可以巩固Java基础知识,还能培养良好的编程习惯和思维模式,为成为专业Java开发者...
黑马程序员_JDBC视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种学习技术视频教程及本档,有需要的可以留言或到本人账号下载
【标题】"Pinyougou_html_css_黑马程序员_" 指的是一个关于HTML和CSS的实战项目,这个项目可能是由“黑马程序员”这个知名的在线教育平台提供的。"品优购"可能是该项目的一个虚构的电商网站名称,目的是为了让学生...
黑马程序员_2小时教你写一个android程序[第06天]课件源码
在本视频教程“黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件)”中,讲师毕向东深入讲解了Java GUI中的Action事件处理机制,这是构建用户友好界面的关键部分。 首先,我们要理解什么是GUI。GUI,...