03 2014 档案

摘要:什么是Canvas HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。 你可以通过多种方法使用Canva绘制路径,盒、圆、字符以及添加图像。 Canvas浏览器支持 表格中的数字表示支持 < 阅读全文
posted @ 2014-03-29 14:45 胡椒粉hjf 阅读(2097) 评论(0) 推荐(0) 编辑
摘要:一、发展历:早期:++文件 问题:不是所有浏览器都支持,而且embed不是标准。现状:Realplay、window media、Quick Time 、Flash 问题:每个厂商每个标准,网站编码和格式也都不相同,flash的出现解决了面的问题,但是apple在07年决定任何设备将不再支持flash。HTML5认为浏览器应该原生支持音视频,因为他们现在也是web中的一等公民了!二、视频格式的简单介绍1、常见的视频格式 视频的组成部分:画面、音频、编码格式视频编码:H.264、Theora、VP8(google开源)常见的音频格式音频编码:ACC、MP3、Vorbis2、HTML5支持的... 阅读全文
posted @ 2014-03-29 00:13 胡椒粉hjf 阅读(704) 评论(0) 推荐(0) 编辑
摘要:享元模式以共享的方式高效地支持大量的细粒度对象。很多很小的对象,这些对象有很多共同的东西,那就变成一个对象,还有些不同的东西,作为外部的属性,用方法的参数传入public class FlyweightDemo { public static void main(String[] args) { Integer m = 127; Integer n = 127; System.out.println(m==n);//结果为true,这就是使用了享元设计模式 Integer a = Integer.va... 阅读全文
posted @ 2014-03-28 23:01 胡椒粉hjf 阅读(259) 评论(0) 推荐(0) 编辑
摘要:一、调试程序:比如调试一个变量,查看一个变量的值1.在需要调试的程序上打上点2.右键进入Debug视图3.选中变量,右键点击watch进入调试4.点击下一步按钮进行调试二、视图管理:三、配置eclispe的编译与运行环境1.配置整个工作间的编译和运行环境设置编译器:在右侧选择编译器的版本然后点击ap... 阅读全文
posted @ 2014-03-28 21:34 胡椒粉hjf 阅读(282) 评论(0) 推荐(0) 编辑
摘要:项目概述: 技术涵盖:由 8 组由浅入深的模块构成,应用如下技术:面向对象的封装性、构造器、引用类型的成员变量、异构数组、继承、多态、方法的重载、方法的重写、包装类、单子模式、异常、集合。 实现功能:以银行业务为背景,包含:添加客户,创建异构账户、存钱、取钱、透支保护等业务。 阅读全文
posted @ 2014-03-28 02:31 胡椒粉hjf 阅读(199) 评论(0) 推荐(0) 编辑
摘要:金卡黛珊姐夫卡戴珊积分卡是 阅读全文
posted @ 2014-03-28 01:27 胡椒粉hjf 阅读(102) 评论(0) 推荐(0) 编辑
摘要:lfjasdklfjadsklfj 阅读全文
posted @ 2014-03-28 01:26 胡椒粉hjf 阅读(159) 评论(0) 推荐(0) 编辑
摘要:的fjakls风刀霜剑阿卡丽放假啊省掉了 阅读全文
posted @ 2014-03-28 01:25 胡椒粉hjf 阅读(101) 评论(0) 推荐(0) 编辑
摘要:国际化赶快 阅读全文
posted @ 2014-03-27 22:46 胡椒粉hjf 阅读(173) 评论(0) 推荐(0) 编辑
摘要:是在运行状态中,对于任意一个类 (class文件),都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。动态获取类中信息,就是java反射 。可以理解为对类的解剖。反射机制图解说明:先创建一个字节码文件:public class Person { private int age; private String name; public Person(String name,int age) { super(); this.age = ... 阅读全文
posted @ 2014-03-27 22:36 胡椒粉hjf 阅读(1503) 评论(0) 推荐(0) 编辑
摘要:卡戴珊疯狂啦大煞风景阿斯顿 阅读全文
posted @ 2014-03-25 22:48 胡椒粉hjf 阅读(146) 评论(0) 推荐(0) 编辑
摘要:苦辣的设计费卡拉斯加都发生的 阅读全文
posted @ 2014-03-25 22:47 胡椒粉hjf 阅读(113) 评论(0) 推荐(0) 编辑
摘要:进口量点卷啊首付款拉德斯基疯狂拉萨的 阅读全文
posted @ 2014-03-25 22:46 胡椒粉hjf 阅读(147) 评论(0) 推荐(0) 编辑
摘要:看的撒积分卡拉斯的放假啊的顺口溜 阅读全文
posted @ 2014-03-25 22:44 胡椒粉hjf 阅读(143) 评论(0) 推荐(0) 编辑
摘要:看的撒积分卡拉斯的 阅读全文
posted @ 2014-03-25 22:43 胡椒粉hjf 阅读(117) 评论(0) 推荐(0) 编辑
摘要:的金卡送极度疯狂骄傲的首付款了艾丝凡假的顺口溜放假 阅读全文
posted @ 2014-03-25 22:42 胡椒粉hjf 阅读(126) 评论(0) 推荐(0) 编辑
摘要:效果图:CSS* { padding:0; margin:0;}body { margin:40px;}ul { margin:0 auto; width:480px; height:360px; background:#333; list-style-type:none; overflow:hidden; /*溢出隐藏*/}ul li { width:480px; height:360px;}ul li img { padding:40px 0 0 40px;}p { text-align:center; ... 阅读全文
posted @ 2014-03-24 00:30 胡椒粉hjf 阅读(276) 评论(0) 推荐(0) 编辑
摘要:HTMLCSS鼠标经过另类做法 CSSdl,dd { margin:0; padding:0;}dl { width:300px; height:300px; background:url(../images/menu_gray.jpg) no-repeat;}dl dd { width:100px; height:100px; float:left;}dl dd a { width:100px; height:100px; display:block; ... 阅读全文
posted @ 2014-03-24 00:23 胡椒粉hjf 阅读(220) 评论(0) 推荐(0) 编辑
摘要:kdflasjfklasdfj 阅读全文
posted @ 2014-03-22 21:36 胡椒粉hjf 阅读(116) 评论(0) 推荐(0) 编辑
摘要:fnadsfkjaskldfjakls 阅读全文
posted @ 2014-03-22 21:35 胡椒粉hjf 阅读(105) 评论(0) 推荐(0) 编辑
摘要:精美Css+Xhtml下拉菜单 本实例不支持IE6.0,抛弃IE6.0从现在做起 我的首页 我的Png 我的Gif 我的酷站 我的日志 我的相册 我的收藏 ... 阅读全文
posted @ 2014-03-22 16:34 胡椒粉hjf 阅读(210) 评论(0) 推荐(0) 编辑
摘要:效果很有创意的CSS导航 home about rss CSS文件* { padding:0; margin:0;}ul{ width:774px; height:210px; background:url(../images/menu-bg.jpg) no-repeat; list-style-type:none; position:relative; margin:100px;}li.home { background:url(../images/home.gif) no-repeat; width... 阅读全文
posted @ 2014-03-22 16:12 胡椒粉hjf 阅读(235) 评论(0) 推荐(0) 编辑
摘要:效果图:HTML文件带图标的登陆框 请输入登录的用户名和密码 Username Password Get your Password? 样式文件:body { background:#fff; font-size:12px;}div{ margin:0 auto;}#sidebar h3 { font-size:12px; font-weight:normal; background:url(../images/warning.gif) no-rep... 阅读全文
posted @ 2014-03-22 15:57 胡椒粉hjf 阅读(566) 评论(0) 推荐(0) 编辑
摘要:效果图:HTML文件超实用的翻页 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 样式文件:* { padding:0; margin:0;}body { margin:40px; font-size:12px;}ul { background:white; widt... 阅读全文
posted @ 2014-03-22 15:38 胡椒粉hjf 阅读(695) 评论(0) 推荐(0) 编辑
摘要:•操作数据对象•接受参数返回一个结果•只对一行进行变换•每行返回一个结果•可以转换数据类型•可以嵌套•参数可以是一列或一个值大小写控制函数:这类函数改变字符的大小写在查询表中的记录时,条件为字符串,而字符串是区分大小写的当不知道是大写还是小写的时候,只要是是同一个字母就可以时,那么可以使用大小写函数查询结果是:(符合字母,不管是大写还是小写都可以查询的出来了)字符控制函数:这类函数控制字符select concat('Hello','World'),substr('HelloWorld',1,5),length('HelloWorld&# 阅读全文
posted @ 2014-03-20 17:23 胡椒粉hjf 阅读(536) 评论(0) 推荐(0) 编辑
摘要:WHERE 子句紧随 FROM 子句查询 last_name 为 'King' 的员工信息错误1: King 没有加上 单引号select first_name, last_namefrom employeeswhere last_name = King错误2: 在单引号中的值区分大小写select first_name, last_namefrom employeeswhere last_name = 'king'正确select first_name, last_namefrom employeeswhere last_name = 'King 阅读全文
posted @ 2014-03-20 16:20 胡椒粉hjf 阅读(317) 评论(0) 推荐(0) 编辑
摘要:MySQL 阅读全文
posted @ 2014-03-18 23:20 胡椒粉hjf 阅读(108) 评论(0) 推荐(0) 编辑
摘要:客户端发数据到服务端Tcp传输,客户端建立的过程。 1,创建tcp客户端socket服务。使用的是Socket对象。建议该对象一创建就明确目的地。要连接的主机。 2,如果连接建立成功,说明数据传输通道已建立。该通道就是socket流 ,是底层建立好的。 既然是流,说明这里既有输入,又有输出。想要输入或者输出流对象,可以找Socket来获取。可以通过getOutputStream(),和getInputStream()来获取两个字节流。 3,使用输出流,将数据写出。 4,关闭资源。import java.io.IOException;import java.io.OutputStream... 阅读全文
posted @ 2014-03-18 19:05 胡椒粉hjf 阅读(366) 评论(0) 推荐(0) 编辑
摘要:发送端:(将数据源改为键盘录入)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDPSendDemo { public static void main(String[] args) throws IOException { ... 阅读全文
posted @ 2014-03-18 02:02 胡椒粉hjf 阅读(348) 评论(0) 推荐(0) 编辑
摘要:请你自我介绍一下你自己? 一般人回答这个问题往往会进入误区,回答的过于平常,只说姓名、年龄、爱好、工作经验等,但是你们想到没有,其实这些信息你的个人简历上都有,那么面试官还问你干什么?其实,面试官最希望知道的是求职者能否胜任这份工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但一定要突出积极的个性和做事的能力,说得合情合理企业的面试官才会相信。企业很重视一个人的礼貌,求职者要尊重面试官,在回答每个问题之后还可以加一句“谢谢”,企业喜欢有礼貌的求职者。切记:回答面试官问题的时候一定要回答的自然,有底气,否. 阅读全文
posted @ 2014-03-18 01:48 胡椒粉hjf 阅读(414) 评论(0) 推荐(0) 编辑
摘要:创建UDP传输的发送端 : 1.建立udp的socket服务 2.将要发送的数据封装到数据包中 3.通过udp的socket服务 将数据包发送出去 4.关闭socket服务(因为调用了系统的底层资源网卡)import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UDPSendDemo { public static void main(String[] args)... 阅读全文
posted @ 2014-03-18 01:25 胡椒粉hjf 阅读(364) 评论(0) 推荐(0) 编辑
摘要:import java.net.InetAddress;import java.net.UnknownHostException;public class IPDemo { public static void main(String[] args) throws UnknownHostException { //UnknownHostException未知主机异常 //获取本地主机ip地址对象 InetAddress ip = InetAddress.getLocalHost(); System.out.println(ip.ge... 阅读全文
posted @ 2014-03-18 00:12 胡椒粉hjf 阅读(185) 评论(0) 推荐(0) 编辑
摘要:SAX(org.xml.sax) Simple API for XML,以事件的形式通知程序,对Xml进行解析。SAX技术的介绍:SAX是一种以事件驱动的XML api,由它定义的事件流可以指定从解析器传到专门的处理程序的代码的XML结构,简单的讲,它解析速度快,占用内存少的解析器。这种解析器比较适合android 等移动设备。使用SAX的优点是:因为SAX的优势是流的方式处理,当遇到一个标签的时候,并不会记录下当前所碰到的标签。也就是说,startEelment方法中,你所知道的信息,仅仅是当前的签名的名字和属性,至于标签的嵌套结构,上层标签的名字,是否有子元素与其他结构相关的信息,都是不. 阅读全文
posted @ 2014-03-17 22:53 胡椒粉hjf 阅读(162) 评论(0) 推荐(0) 编辑
摘要:将阿里山的积分卡拉斯的发生的咖啡机啊圣考虑到发送到敬爱费卢卡斯加 阅读全文
posted @ 2014-03-17 21:53 胡椒粉hjf 阅读(97) 评论(0) 推荐(0) 编辑
摘要:package com.mywindow.test;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.WindowConstants;import javax.swing.SwingUti 阅读全文
posted @ 2014-03-17 21:52 胡椒粉hjf 阅读(181) 评论(0) 推荐(0) 编辑
摘要:实现想windows下的文件管理器(主要是监听器里的方法,showDir()写法)package com.mywindow.test;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.io.File;import javax.swing.JButton;import javax.swing.JTextArea;import javax.swing.JTe 阅读全文
posted @ 2014-03-17 21:52 胡椒粉hjf 阅读(568) 评论(0) 推荐(0) 编辑
摘要:HTTP网络传输中的数据组织方式有三种方式: 1、HTML方式 2、XML方式 3、JSON方式XML介绍:XML称为可扩展标记语言,它与HTML一样,都是SGML(标准通用标记语言) XML是Internet环境中跨平台的,依赖于内容技术,是当前处理结构化文档信息的有力工具,可扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据。XML结构示意: jack 30 rose 25 XML的结构解析如下: 1、节点 2、元素 3、属性和属性值由于XML的扩展性强,致使... 阅读全文
posted @ 2014-03-17 21:44 胡椒粉hjf 阅读(246) 评论(0) 推荐(0) 编辑
摘要:W3C标准有哪些? W3C推行的主要规范有HTML,CSS,XML,XHTML和DOM(Document Object Model)。HTML+CSS:怎样使一个层垂直居中于浏览器中? div{ width:200px; height:200px; ... 阅读全文
posted @ 2014-03-17 21:24 胡椒粉hjf 阅读(395) 评论(0) 推荐(0) 编辑
摘要:Intent是一种运行时绑定(runtime binding)机制,它能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来请求。在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在Activit 阅读全文
posted @ 2014-03-17 17:16 胡椒粉hjf 阅读(151) 评论(0) 推荐(0) 编辑
摘要:import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.TextField;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;public class MouseAndKeyDemo { private Frame f; private TextField tf; private Button but; public MouseAndKeyDemo() { ... 阅读全文
posted @ 2014-03-17 12:27 胡椒粉hjf 阅读(392) 评论(0) 推荐(0) 编辑
摘要:所有的组件都有鼠标和键盘监听器import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.TextField;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;class MouseDemo { private Frame f; private ... 阅读全文
posted @ 2014-03-16 20:58 胡椒粉hjf 阅读(265) 评论(0) 推荐(0) 编辑
摘要:事件监听机制组成: 事件源:(awt包或者swing包中的那些图形界面组件)(被打的那个人,被点击的组件,可以承受某些事件,但不是所有事件都能承受) 事件:每个事件源都有自己特有的对应事件和共性事件(动作,比如打,点击) 监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中(保镖) 处理方式上面的三个在java中都已经定义好了,直接获取其对象来用就可以了我们要做的就是对产生的动作进行处理import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.eve... 阅读全文
posted @ 2014-03-16 19:50 胡椒粉hjf 阅读(827) 评论(0) 推荐(0) 编辑
摘要:java 图形化界面的对象存在这两个包中: java.awt :Abstract WindowsToolkit(抽象窗口工具包)需要调用本地系统方法实现功能,属重量级控件 javax.swing:在awt的基础上,建立的一套图形界面系统,其中提供了更多的组件而且完全有java实现,增强了移植性,属轻量级控件创建图形化界面: 1.创建frame窗体 2.对窗体进行基本的设置 比如大小 位置 布局 3.定义组件。 4.将组件通过窗体的add方法添加到窗体中 5.让窗体显示,通过setVisible(true)import java.awt.Button;imp... 阅读全文
posted @ 2014-03-16 19:04 胡椒粉hjf 阅读(351) 评论(0) 推荐(0) 编辑
摘要:其实就一个程序用于在互联网中获取符合指定规则的数据。爬取邮箱地址爬取本地中的文件:import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class 阅读全文
posted @ 2014-03-16 17:08 胡椒粉hjf 阅读(250) 评论(0) 推荐(0) 编辑
摘要:1.治疗口吃:我我...我我...我我我要...要要要要...要要要要..学学学学学...学学编编...编编编编..编..程程...程程...程程程public class RegexTest { public static void main(String[] args) { test(); } public static void test(){ String str = "我我...我我...我我我要...要要要要...要要要要..学学学学学...学学编编...编编编编..编..程程...程程...程程程"; ... 阅读全文
posted @ 2014-03-16 16:42 胡椒粉hjf 阅读(221) 评论(0) 推荐(0) 编辑
摘要:其实使用的就是String类中的replaceAll()方法。public class RegexDemo { public static void main(String[] args) { functionDemo(); } public static void functionDemo() { String str = "zhangsanttttxiaoqiangmmmmmmzhaoliu"; str = str.replaceAll("(.)\\1+", "$1"); ... 阅读全文
posted @ 2014-03-16 15:35 胡椒粉hjf 阅读(197) 评论(0) 推荐(0) 编辑
摘要:其实使用的就是String类中的split方法。public class Test { public static void main(String[] args) { functionDemo(); } public static void functionDemo() { String str = "zhangsan xiao zhaoliu"; String[] names = str.split(" ");//用空格来切时候,如果有很多空格,切出来的效果就不好了 for(String name : names){... 阅读全文
posted @ 2014-03-16 15:29 胡椒粉hjf 阅读(517) 评论(0) 推荐(0) 编辑
摘要:正则表达式常见的规则查看API将正则规则进行对象的封装。Pattern p = Pattern.compile("a*b"); 通过正则对象的matcher方法字符串相关联。获取要对字符串操作的匹配器对象Matcher .Matcher m = p.matcher("aaaaab"); 通过Matcher匹配器对象的方法对字符串进行操作。boolean b = m.matches();import java.util.regex.Matcher;import java.util.regex.Pattern;public class RegexDemo { 阅读全文
posted @ 2014-03-16 15:15 胡椒粉hjf 阅读(294) 评论(0) 推荐(0) 编辑
摘要:IO流:输入流:输出流:字节流:字符流:为了处理文字数据方便而出现的对象。 其实这些对象的内部使用的还是字节流(因为文字最终也是字节数据) 只不过,通过字节流读取了相对应的字节数,没有对这些字节直接操作。 而是去查了指定的(本机默认的)编码表,获取到了对应的文字。 简单说:字符流就是 : 字节流+编码表。 ----------------------- 缓冲区:提高效率的,提高谁的效率?提高流的操作数据的效率。 所以创建缓冲区之前必须先有流。 缓冲区的基本思想:其实就是定义容器将数据进行临时存储。 ... 阅读全文
posted @ 2014-03-16 15:04 胡椒粉hjf 阅读(193) 评论(0) 推荐(0) 编辑
摘要:编码表的由来: 计算机只能识别二进制数据,早期由来是电信号 为了方便应用计算机,让他可以识别各个国家的文字 就将各个国家的文字用数字来表示,并一一对应,形成一张表,这就是编码表常见编码表: ASCII:美国标准信息交换码。用一个字节的7位可以表示 ISO8859-1:拉丁码表。欧洲码表,用一个字节的8位表示 GB2312:中国的中文编码表 GBK:中国的中文编码表升级,融合了更多的中文文字符号 Unicode:国际标准码,融合了多种文字。所有文字都用两个字节来表示,java语言使用的就是Unicode UTF-8:最多用三个字节来表示一个字符import java.io.IO... 阅读全文
posted @ 2014-03-16 14:55 胡椒粉hjf 阅读(369) 评论(0) 推荐(0) 编辑
摘要:import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;public class Test { public static void main(String[] args) throws IOException { ByteArrayInputStream bis = new ByteArrayInputStream("abcedf".getBytes()); ByteArrayOutputStream... 阅读全文
posted @ 2014-03-14 00:02 胡椒粉hjf 阅读(151) 评论(0) 推荐(0) 编辑
摘要:1 import java.io.DataInputStream; 2 import java.io.DataOutputStream; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 7 public class Test { 8 public static void main(String[] args) throws IOException { 9 writeData();10 readDat... 阅读全文
posted @ 2014-03-13 23:58 胡椒粉hjf 阅读(472) 评论(0) 推荐(0) 编辑
摘要:输入和输出可以直接进行连接,通过结合线程使用(一个线程用于写,另一个用于读,因为管道输入流(读)是要读取管道输出流的数据的,又因为输入流中的read方法是阻塞式的,当两个流在同一个线程中时,输入流的read方法没有数据可以读,就发生阻塞,那么这个线程就挂了) 1 import java.io.IOException; 2 import java.io.PipedInputStream; 3 import java.io.PipedOutputStream; 4 5 public class Test { 6 public static void main(String[] args)... 阅读全文
posted @ 2014-03-13 23:44 胡椒粉hjf 阅读(403) 评论(0) 推荐(0) 编辑
摘要:该类不是io体系中的子类(但在IO包中),是Object下的一个子类。随机访问文件,自身具备读写的方法,通过skipBytes(int x),seek(int x)这两个方法随机访问特点: 1,该对象即能读,又能写。 2,该对象内部维护了一个byte数组,并通过指针可以操作数组中的元素, 3,可以通过getFilePointer方法获取指针的位置,和通过seek方法设置指针的位置。 4,其实该对象就是将字节输入流和输出流进行了封装。 5,该对象的源或者目的只能是文件。通过构造函数就可以看出。使用RandomAccessFile对象写入一些人员信息,比如姓名和年龄。该类中的写方法能将... 阅读全文
posted @ 2014-03-13 22:55 胡椒粉hjf 阅读(312) 评论(0) 推荐(0) 编辑
摘要:对象序列化就是将一些对象写入到硬盘中存储起来,以便下次复用 1 import java.io.FileInputStream; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.ObjectInputStream; 5 import java.io.ObjectOutputStream; 6 7 public class ObjectStreamDemo { 8 9 public static void main(String[] args) throws IOExce... 阅读全文
posted @ 2014-03-12 16:52 胡椒粉hjf 阅读(243) 评论(0) 推荐(0) 编辑
摘要:在切割文件的时候应该生成一个记录文件信息的文件,以便在以后合并文件的时候知道这个文件原来的文件名和记录文件切割完后生成了多少个切割文件 1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import java.util.Properties; 6 7 public class SplitFileDemo { 8 private static final int SIZE = 1024*10... 阅读全文
posted @ 2014-03-12 15:52 胡椒粉hjf 阅读(319) 评论(0) 推荐(0) 编辑
摘要:切割可以分两种方式:按文件个数切,按文件大小来切(建议用这种方式,因为按个数的话,有可能文件非常大) 1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 6 public class SplitFileDemo { 7 private static final int SIZE = 1024*1024;//1M=1024*1024个字节 8 9 public static void... 阅读全文
posted @ 2014-03-12 15:11 胡椒粉hjf 阅读(313) 评论(0) 推荐(0) 编辑
摘要:SequenceInputStream(序列流):就是将多个流合成一个有序的流需求:将三个文件中的数据合并到一个文件中 1 import java.io.FileInputStream; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.SequenceInputStream; 5 import java.util.Enumeration; 6 import java.util.Vector; 7 8 public class SequenceInputStreamDemo { . 阅读全文
posted @ 2014-03-12 14:36 胡椒粉hjf 阅读(264) 评论(0) 推荐(0) 编辑
摘要:PrintStream: 1.提供了打印方法可以对多种数据类型值进行打印,并保持数据的表示形式 2.它不抛IOException 3.构造函数接受三种类型的值: 字符串路径 File对象 字节输出流import java.io.FileNotFoundException;import java.io.IOException;import java.io.PrintStream;public class PrintStreamDemo { public static void main(String[] args) throws IOException { ... 阅读全文
posted @ 2014-03-12 14:02 胡椒粉hjf 阅读(705) 评论(0) 推荐(0) 编辑
摘要:定义功能:获取一个应用程序 运行次数,如果超过5次,给出使用次数已到请注册的提示,并不要再运行程序思路: 1.定义计数器:每次程序启动都需要计数一次,并且是在原有的次数上进行计数。 2.计数器就是一个变量,程序启动时候进行计数,计数器必须存在于内存中并进行运算,可以程序结束,计数器消失了,那么再次启动该程序,计数器又重新被初始化了 而我们要多次启动同一个应用程序,使用的是同一个计数器,这就需要使计数器的声明周期变长,从内存存储到硬盘文件中。 3.如何使用这个计数器呢? 首先,程序启动时,应该先读取这个用于记录计数器信息的配置文件。获取上一次计数器次数,并进行试用次数的判断,其... 阅读全文
posted @ 2014-03-12 03:10 胡椒粉hjf 阅读(251) 评论(0) 推荐(0) 编辑
摘要:集合中的数据来自于一个文件 注意:必须要保证该文件中的数据是键值对。 需要使用到读取流使用load()方法读取已有文件中的数据,存储到Properties集合中 1 public class PropertiesDemo { 2 public static void main(String[] args) throws IOException { 3 PropertiesDemo(); 4 } 5 public static void PropertiesDemo() throws IOException { 6 Propert... 阅读全文
posted @ 2014-03-12 03:00 胡椒粉hjf 阅读(1042) 评论(0) 推荐(0) 编辑
摘要:Properties集合和流对象结合的功能list()方法:import java.util.Properties;public class PropertiesDemo { public static void main(String[] args) { propertiesDemo(); } public static void propertiesDemo() { Properties prop = new Properties(); prop.setProperty("02", "huangjianfeng"); ... 阅读全文
posted @ 2014-03-12 01:58 胡椒粉hjf 阅读(1912) 评论(0) 推荐(1) 编辑
摘要:Properties集合:(Map集合下的Hashtable集合下的一个子类)特点: 1.集合中的键和值都是字符串 2.集合中的数据可以保存到流中,或者从流中获取该集合通常用于操作以键值对形式存在的配置文件Properties集合的存和取 1 import java.util.Properties; 2 import java.util.Set; 3 4 public class PropertiesDemo { 5 public static void main(String[] args) { 6 propertiesDemo(); 7 } 8 ... 阅读全文
posted @ 2014-03-12 01:45 胡椒粉hjf 阅读(409) 评论(0) 推荐(0) 编辑
摘要:需求:删除一个带内容的目录原理:必须从最里面往外删除需要深度遍历import java.io.File;public class RemoveDirTest { public static void main(String[] args) { File dir = new File("F:\\SogouWP"); removeDir(dir); } public static void removeDir(File dir) { File[] files = dir.listFiles(); for(File file ... 阅读全文
posted @ 2014-03-11 22:31 胡椒粉hjf 阅读(177) 评论(0) 推荐(0) 编辑
摘要:递归:是一种编程手法,函数自身直接或间接调用了自身public class FileRecursion { public static void main(String[] args) { } public static void show(){ //show();//直接调用自身 Method(); } public static void Method() { show();//间接调用自身 }}注意: 1.递归一定要明确条件,否则容易栈溢出(StackOverflowError),只进不出 2.递归的次数... 阅读全文
posted @ 2014-03-11 21:54 胡椒粉hjf 阅读(138) 评论(0) 推荐(0) 编辑
摘要:遍历指定目录下的所有文件和文件夹 1 import java.io.File; 2 3 public class FileTest { 4 public static void main(String[] args) { 5 File dir1 = new File("F:\\韩顺平");//如果该指定的目录不存在会发生NullPointerException 6 7 List(dir1); 8 } 9 public static void List(File dir1) {10 String[] fi... 阅读全文
posted @ 2014-03-11 19:29 胡椒粉hjf 阅读(265) 评论(0) 推荐(0) 编辑
摘要:import java.io.File;public class ListDemo { public static void main(String[] args) { ListDemo(); } public static void ListDemo() { File dir = new File("F:\\"); File[] file = dir.listFiles(); for(File files : file){ System.out.println(files); ... 阅读全文
posted @ 2014-03-11 18:30 胡椒粉hjf 阅读(1665) 评论(0) 推荐(0) 编辑
摘要:首先定义过滤器import java.io.File;import java.io.FilenameFilter;public class FileByJava implements FilenameFilter{ public boolean accept(File dir, String name) { //System.out.println("dir....."+name);//先全部遍历,然后再过滤 return name.endsWith(".java");//表示过滤.java的文件 }}import java.io.File;public 阅读全文
posted @ 2014-03-11 18:17 胡椒粉hjf 阅读(211) 评论(0) 推荐(0) 编辑
摘要:获取当前目录下的文件以及文件夹,包含隐藏文件调用list方法的File对象中封装的必须是目录否则会发生空指针异常,如果封装的是系统级的目录也会发生空指针异常(因为数组根本就没有创建成功)如果目录存在但没有内容,会返回一个数组,但长度为0import java.io.File;public class ListDemo { public static void main(String[] args) { listDemo(); } public static void listDemo() { File file = new File... 阅读全文
posted @ 2014-03-11 17:45 胡椒粉hjf 阅读(656) 评论(0) 推荐(0) 编辑
摘要:获取系统根目录import java.io.File;public class File_ListRoots { public static void main(String[] args) { listRoots(); } public static void listRoots() { File[] files = File.listRoots(); for(File file: files){ System.out.println(file); } }}容量获取:import j... 阅读全文
posted @ 2014-03-11 17:23 胡椒粉hjf 阅读(443) 评论(0) 推荐(0) 编辑
摘要:获取: 1.1获取文本名称 1.2获取文件路劲 1.3获取文件大小 1.4获取文件修改或创建时间import java.io.File;import java.text.DateFormat;import java.util.Date;public class FileGetMethodDemo { public static void main(String[] args) { getDemo(); } public static void getDemo() { File file = new File("F:\\a.txt"); ... 阅读全文
posted @ 2014-03-11 17:03 胡椒粉hjf 阅读(426) 评论(0) 推荐(0) 编辑
摘要:File类:用来将文件或者文件夹封装成对象方便对文件或或文件夹的属性信息进行操作File对象可以作为参数传递给流的构造函数import java.io.File;public class FileDemo { public static void main(String[] args) { constructorDemo(); } public static void constructorDemo() { //可以将一个已存在或不存在的文件或在目录封装成file对象 File f1= new File("F:\\B.txt"); ... 阅读全文
posted @ 2014-03-11 16:32 胡椒粉hjf 阅读(298) 评论(0) 推荐(0) 编辑
摘要:import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedE 阅读全文
posted @ 2014-03-11 16:14 胡椒粉hjf 阅读(586) 评论(0) 推荐(0) 编辑
摘要:1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.InputStreamReader; 6 import java.io.OutputStream; 7 import java.io.OutputStreamWriter; 8 9 public class TransStreamDemo {10 public static void main(Str... 阅读全文
posted @ 2014-03-11 15:05 胡椒粉hjf 阅读(491) 评论(0) 推荐(0) 编辑
摘要:读取一个键盘录入的数据,打印到控制台上键盘本身就是一个标准的输入设备,对于java而言,对于这种输入设备都有相应的对象在System类中 1 import java.io.IOException; 2 import java.io.InputStream; 3 4 public class ReadKeyDemo { 5 public static void main(String[] args) throws IOException { 6 readKey(); 7 } 8 public static void readKey() throws IO... 阅读全文
posted @ 2014-03-11 14:34 胡椒粉hjf 阅读(268) 评论(0) 推荐(0) 编辑
摘要:我们先来实现一个基本的圆,HTML 代码如下:CSS 实现的各种球体效果 这里使用的是 HTML5 新增标签 figure,也可以用其它标签。figure 标签专门用于显示网页中的图片或者其它图表内容。为了实现圆型效果,添加一些基础的样式上面实现了基本的圆形效果,这里增加径向渐变效果来实现更逼真的球体。CSS 实现的各种球体效果 上节已经有基本的球体效果出来了,为了增加立体效果,我们在球的底部加个阴影,这样立体感就更强了。 阅读全文
posted @ 2014-03-10 00:33 胡椒粉hjf 阅读(190) 评论(0) 推荐(0) 编辑
摘要:wieafjseifjadsi 阅读全文
posted @ 2014-03-09 19:25 胡椒粉hjf 阅读(108) 评论(0) 推荐(0) 编辑
摘要:fadsfkasdf 阅读全文
posted @ 2014-03-09 18:19 胡椒粉hjf 阅读(98) 评论(0) 推荐(0) 编辑
摘要:djafksjdfkadsl 阅读全文
posted @ 2014-03-09 18:17 胡椒粉hjf 阅读(111) 评论(0) 推荐(0) 编辑
摘要:kafjlkfdjsa 阅读全文
posted @ 2014-03-09 18:16 胡椒粉hjf 阅读(108) 评论(0) 推荐(0) 编辑
摘要:与Handler实现线程间的通信1反过来MainThread中向WorkerThread中发送消息 阅读全文
posted @ 2014-03-07 23:19 胡椒粉hjf 阅读(97) 评论(0) 推荐(0) 编辑
摘要:通过Handler实现线程间的通信,在主线程当中实现Handler的handlerMessage()方法,在WorkerThread中通过Handler发送消息Handler实现线程间的通信实例: 实现点击发送消息,启动一个线程,然后让线程休眠2秒钟,把TextView中的内容修改掉 这个例子的实际价值:当点击按钮的时候,程序假设去访问服务器,服务器接收到请求之后返回结果,假设这个结果是个字符串,然后把字符串更新到TextView中MainActivity.java 1 import android.app.Activity; 2 import android.os.Bundle;... 阅读全文
posted @ 2014-03-07 21:08 胡椒粉hjf 阅读(296) 评论(0) 推荐(0) 编辑
摘要:Handler,Looper,MessageQueue的基本原理(三个组成一个消息处理机制)最大的作用就是实现线程间的通信Handler负责把消息对象加入到消息队列当中Looper(循环器)是一个循环,不停从消息队列当中向外取出消息对象,如果没有消息对象可以取出,那么Looper的代码将会产生阻塞(处于等待状态)Looper将消息对象取出来之后,Looper将会调用Handler的handleMessage方法来处理消息对象Handler基本运行机制的例子:MainActivity.java 1 import android.app.Activity; 2 import android.os. 阅读全文
posted @ 2014-03-07 18:53 胡椒粉hjf 阅读(394) 评论(0) 推荐(0) 编辑
摘要:android中的线程可以分为两种:MainThread(主线程也叫UI线程)与UI相关的线程都是运行在主线程中与WorkerThread(),原则上是不可以操作UI的在一个应用程序当中,主线程通常用于接收用户的输入,以及将运算的结果反馈给用户所以必须将一些可能产生阻塞的操作,必须放在worker Thread中MainActivity.java 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.view.View; 4 import android.view.View.OnClickList 阅读全文
posted @ 2014-03-07 18:34 胡椒粉hjf 阅读(239) 评论(0) 推荐(0) 编辑
摘要:MainActivity.java 1 import android.app.Activity; 2 import android.content.Intent; 3 import android.os.Bundle; 4 import android.view.Menu; 5 import android.view.MenuItem; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 import android.widget.Ed 阅读全文
posted @ 2014-03-07 16:41 胡椒粉hjf 阅读(218) 评论(0) 推荐(0) 编辑
摘要:Intent是Android应用程序组件之一,在Android系统当中表示一种意图,Intent中包含了一组信息: 最重要的内容是action(动作)和data(数据) Component name 表示要启动哪个ActivityFirstActivity.java 1 import android.os.Bundle; 2 import android.app.Activity; 3 import android.content.Intent; 4 import android.view.View; 5 import android.view.View.OnClickListener; .. 阅读全文
posted @ 2014-03-07 15:02 胡椒粉hjf 阅读(252) 评论(0) 推荐(0) 编辑
摘要:1 10 11 17 18 25 26 网格布局也称为框架布局是最简单的布局方式、所有添加到这个布局中的视图都是以层叠的方式显示。第一个添加到框架布局中的视图显示在最底层,最后一个被放在最顶层,上一层的视图会覆盖下一层的视图,因此框架布局类似堆栈布局。属性值描述top将视图放到屏幕的顶端Buttom将视图放到屏幕的底端Left将视图放在屏幕的左侧Right将视图放在屏幕的右侧Center_vertical将视图按照垂直方向居中显示horizontal_vertical将视图按照水平方向居中显示 阅读全文
posted @ 2014-03-07 13:28 胡椒粉hjf 阅读(374) 评论(0) 推荐(0) 编辑
摘要:1 2 6 :表示如果有剩余空间 时 第几列拉伸 0表示第一列,跟java的思想一样--> 7 8 12 17 22 23 24 25 28 32 33 阅读全文
posted @ 2014-03-07 01:58 胡椒粉hjf 阅读(312) 评论(0) 推荐(0) 编辑
摘要:这两种进度条都是ProgressBar的子类SeekBar:是一种可以拖动的进度条,比如播放音乐的进度 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.widget.SeekBar; 4 import android.widget.SeekBar.OnSeekBarChangeListener; 5 6 public class MainActivity extends Activity { 7 private SeekBar seekbar; 8 protected vo... 阅读全文
posted @ 2014-03-07 01:42 胡椒粉hjf 阅读(407) 评论(0) 推荐(0) 编辑
摘要:进度条的风格: 1 2 6 7 8 15 16 17 24 25 32 33 34 41 42 43 50 51 52 59 60 61 68 69 70 水平进度条的使用: 1 import android.os.Bundle; 2 import android.app.Activity; 3 import android.view.View; 4 import android.view.View.OnClickListener; 5... 阅读全文
posted @ 2014-03-07 00:59 胡椒粉hjf 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-03-06 21:14 胡椒粉hjf 阅读(129) 评论(0) 推荐(0) 编辑
摘要:1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.view.View; 4 import android.view.View.OnClickListener; 5 import android.widget.Button; 6 import android.widget.DatePicker; 7 8 public class MainActivity extends Activity { 9 private DatePicker datepicker;10 private... 阅读全文
posted @ 2014-03-06 20:58 胡椒粉hjf 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.view.View; 4 import android.view.View.OnClickListener; 5 import android.widget.Button; 6 import android.widget.TimePicker; 7 import android.widget.TimePicker.OnTimeChangedListener; 8 9 public class MainActivity extends Act.. 阅读全文
posted @ 2014-03-06 20:42 胡椒粉hjf 阅读(179) 评论(0) 推荐(0) 编辑
摘要:android:layout_above 将该控件的底部至于给定ID的控件之上 android:layout_below 将该控件的顶部至于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐 android:layout_toRightOf 将该控件的左边缘和给定ID的控件的右边缘对齐 android:layout_alignBaseline 该控件的baseline和给定ID的控件的baseline(基准线)对齐 android:layout_alignBottom 将该控件的底部边缘与给定ID控件的底部边缘 andr... 阅读全文
posted @ 2014-03-06 19:37 胡椒粉hjf 阅读(280) 评论(0) 推荐(0) 编辑
摘要:1 import android.os.Bundle; 2 import android.app.Activity; 3 4 5 public class Layout03 extends Activity { 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState);10 setContentView(R.layout.main);11 }12 } 1 2 7 12... 阅读全文
posted @ 2014-03-06 18:19 胡椒粉hjf 阅读(787) 评论(0) 推荐(0) 编辑
摘要:ImageView(图片视图)的基本概念:就是将一张图片放在一个Activity中显示出来,就是一个放图片的容器 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.widget.ImageView; 4 import android.widget.ImageView.ScaleType; 5 6 public class MainActivity extends Activity { 7 private ImageView ImageView1Id; 8 protected ... 阅读全文
posted @ 2014-03-06 17:36 胡椒粉hjf 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1 11 12 18 24 30 31 32 33 1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.widget.CompoundButton; 4 import android.widget.RadioButton; 5 import android.widget.RadioGroup; 6 import android.widget.RadioGroup.OnCheckedChangeListener; 7 import... 阅读全文
posted @ 2014-03-06 16:59 胡椒粉hjf 阅读(475) 评论(0) 推荐(0) 编辑
摘要:1 import android.os.Bundle; 2 import android.app.Activity; 3 import android.widget.CheckBox; 4 import android.widget.CompoundButton; 5 import android.widget.CompoundButton.OnCheckedChangeListener; 6 7 public class MainActivity extends Activity { 8 private CheckBox swimBox = null; 9 private... 阅读全文
posted @ 2014-03-06 15:55 胡椒粉hjf 阅读(430) 评论(0) 推荐(0) 编辑
摘要:Android表示单位长度的方式通常有三种表示方式。 距离单位☞px:表示屏幕实际的象素。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素 距离单位☞dp:dp = dpi 换算公式:px = dp*(dpi/160) 设置控件大小的通常用dp 距离单位☞sp(与刻度无关的像素): 会随着用户设置的字体的大小而改变 设置控件的文本大小通常用sp如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。 layout_margin(外边距):是控件边缘相对于父控件的边距layout_padding(内边距):是控件内容相对于控件边缘的边距 ... 阅读全文
posted @ 2014-03-06 15:08 胡椒粉hjf 阅读(757) 评论(0) 推荐(0) 编辑
摘要:gravity和layout_gravity的区别android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式线性布局是最常用的布局线性布局在xml文件中使用来定义线性布局可以分为水平和垂直的方向的布局,可以通过android:orientation=“vertical”来定义方向,该属性可以有horizontal和vertical两个方向。(线性布局才有)android:id —— 为控件指定相应的ID ... 阅读全文
posted @ 2014-03-06 14:35 胡椒粉hjf 阅读(233) 评论(0) 推荐(0) 编辑
摘要:Activity的作用:一个Activity相当于一个容器,用于存放各种控件的容器,也可以理解为是与用户交互的接口创建Activity的要点: 1.一个Activity就是一个类,并且这个类要继承Activity 2.需要复写onCreate方法 3。设置这个Activity所使用的布局文件(一般一个Activity对应一个布局文件,也可以多个Activity对应一个布局文件) 4.每一个Activity都需要在AndroidManifest.xml文件当中进行注册 5.在布局文件中为Activity添加必要的控件 6.可以在Activity.java文件中通过控件的id找到需要的... 阅读全文
posted @ 2014-03-06 13:52 胡椒粉hjf 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-03-06 01:09 胡椒粉hjf 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1,进程和线程的概念。 |--进程: |--线程:2,jvm中的多线程体现。 |--主线程,垃圾回收线程,自定义线程。以及他们运行的代码的位置。3,什么时候使用多线程,多线程的好处是什么?创建线程的目的? |--当需要多部分代码同时执行的时候,可以使用。4,创建线程的两种方式。★★★★★ |--继承Thread |--步骤 |--实现Runnable |--步骤 |--两种方式的区别?5,线程的5种状态。 对于执行资格和执行权在状态中的具体特点。 |--被创建: |--运行: |--冻结: |--临时阻塞: |--消亡:6,线程的安全问题。★★★★★ |--安全问题的原因: |--解决的思.. 阅读全文
posted @ 2014-03-01 12:59 胡椒粉hjf 阅读(214) 评论(0) 推荐(0) 编辑
摘要:守护线程-setDaemon:将该线程标记为守护线程或用户线程(后台线程),当正在运行的线程都是守护线程时,Java 虚拟机退出。该方法必须在启动线程前调用 1 class StopThread implements Runnable{ 2 private boolean flag = true; 3 public synchronized void run(){ 4 while(flag){ 5 try{ 6 wait();//t0 t1 使用这个方法是强制性唤醒的会发生异常,就执行catch里的代... 阅读全文
posted @ 2014-03-01 00:47 胡椒粉hjf 阅读(202) 评论(0) 推荐(0) 编辑
摘要:停止线程方法_stop方法(已过时)停止线程方法_定义标记(run方法结束)怎么控制线程的任务结束: 线程任务中都会有循环结构,只要控制住循环就可以结束任务。控制循环通常就用定义标记来完成。 1 class StopThread implements Runnable{ 2 private boolean flag = true; 3 public void run(){ 4 while(flag){ 5 System.out.println(Thread.currentThread().getName()+"....."); 6 ... 阅读全文
posted @ 2014-03-01 00:31 胡椒粉hjf 阅读(272) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示