博为峰

程序员的发展方向有哪些

和自甴很熟 提交于 2020-04-28 06:26:17
今天在这里为那些项从事 开发 工作,有犹豫不决的童鞋们,提供一些个人的看法: JAVA 、C、C++、C#、Python、JavaScrip 、PHP、等多种热门的开发语言,其实开发语言只不过是一个工具,“与其分散进攻,不如全力一击”,无论是哪一种开发语言,只要您全力地去学习,到有了一定的熟悉程度的时候,要学习另一种的语言也是轻而易举的事情。这里我根据经验将开发语言主要分为三大类: 1. 网络开发 现在网络已经成为世界通讯的一座桥梁,好像Javascript、PHP、Ruby这几类开发语言大部分是用作网络开发方面 2. 企业软件开发 JAVA、C#、这几类开发语言都实现了面向对象开发的目标,更多时候用于企业系统的开发 3. 系统软件 C语言、C++、Object-C这些软件更多是用在系统软件开发,嵌入式开发的方面。 当然,这分类不是绝对,像JAVA、C#、很多时候也用于动态网站的开发。在很开发项目都会使用集成开发的方式,同一个项目里面使用多种开发语言,各展所长,同步开发。但所以在刚入门的时候,建议您先为自己选择一种合适的开发工具,“专注地投入学习,全力一击”。 来源: oschina 链接: https://my.oschina.net/u/2971691/blog/778437

浅谈Android的回调

扶醉桌前 提交于 2020-04-18 10:10:43
C不会自己调用b,C提供b的目的就是让S来调用它,而且C不得不提供。S并不知道C提供的b是什么,因此S会约定b的接口规范(函数原型),然后由C提前通过S的一个函数r告诉S自己将要使用b函数(即注册)。r为注册函数。 简单来说: 回调函数 就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机 接下来我们看一下完善后的这幅图。 从这幅图中我们应该大致了解了回调的基本流程。 我们已经大概知道了回调的基本流程,下面,来看看 Android 中回调的基本使用。 回调方法就是一个通过方法指针来调用的方法。如果我将这个方法的指针(地址,引用)通过形参传递到另一个类的某个方法里,那么当这个类调用该方法里面我所传入的指针时,就能调用我这边的方法。 整个过程就是我传入方法A的地址,你接收,并在某个时刻回调我这边的A方法。 由于java没办法操作指针,于是它用接口来实现。 JAVA方法回调是一种耦合设计思想。作为一种架构,必须有自己的运行环境,并且提供用户的实现接口。 主要步骤如下: 定义接口 Callback ,包含回调方法 callback();服务端提供注册的方法,并设定在某个条件下会回调接口方法;客户端提供接口的实现方法,并注册到服务端,把方法地址传进去。这样,在需要的时候,可用Caller对象的mCallback接口成员调用callback()方法,完成回调了。 在 android

Oracle Sys和system用户区别

半腔热情 提交于 2020-04-11 17:49:03
区别之一: 存储的数据的重要性不同 sys 用户 所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。 systeM 用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。 区别之二:权限的不同。 sys 用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。 system 用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。 示例:  以sys用户登陆Oracle,执行select * from V_$PWFILE_USERS;可查询到具有sysdba权限的用户,如: SQL> select * from v$pwfile_users; USERNAME SYSDBA SYSOPER ------------------------------ ------ ------- SYS TRUE TRUE SYSTEM TRUE FALSE 来源: oschina 链接: https://my.oschina.net/u/2971691

Android各个版本特性

一个人想着一个人 提交于 2020-04-07 10:04:45
- Android1.1 2008 年9月发布的 Android 第一版 - Android1.5 Cupcake (纸杯蛋糕) 2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。 主要的更新如下: 1、拍摄/播放影片,并支持上传到Youtube 2、支持立体声蓝牙耳机,同时改善自动配对性能 3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索 4、GPS性能大大提高 5、提供屏幕虚拟键盘 6、主屏幕增加音乐播放器和相框widgets 7、应用程序自动随着手机旋转 8、短信、Gmail、日暦,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件 9、相机启动速度加快,拍摄图片可以直接上传到Picasa 10、来电照片显示 - Android1.6 Donut (甜甜圈) 2009年9月15日,1.6(Donut 甜甜圈)版本软件开发工具包发布。 主要的更新如下: 1、重新设计的Android Market手势 2、支持支持CDMA网络 3、文字转语音系统(Text-to-Speech) 4、快速搜索框 5、全新的拍照接口 6、查看应用程序耗电 7、支持虚拟私人网络(VPN) 8、支持更多的屏幕分辨率。 9、支持OpenCore2媒体引擎 10、新增面向视觉或听觉困难人群的易用性插件 - Android2.0/2.0.1/2.1

博为峰Java技术题 ——JavaSE Java JDBC数据库查询代码实例

£可爱£侵袭症+ 提交于 2020-04-07 05:56:39
博为峰 小博老师: 一般查询通过建立Statement 对象来实现。主要执行如下过程:创建Statement 对象,设置选项,执行查询语句,关闭Statement 对象。执行参数查询首先准备好一个PreparedStatement 对象。创建PreparedStatement 对象可以使用Connection 对象的PreparedStatement()方法。创建这样一个对象时可以设置在执行查询时候的传递参数,如: 程序中的问号就是需要传递的参数。建立一个PreparedStatement 对象后,就可以使用该对象的一些方法来设置选项。如通过setInt()方法来设置需要的参数。通过使用executeQuery()和execute()方法执行查询。执行存储过程就是执行数据库中已经存在的 SQL 查询语句,在程序中执行数据库的存储过程可以使用CallableStatement 对象。创建CallableStatement 对象可以使用Connection类的prepareCall()方法,该方法的参数为一个调用存储过程语句的字符串,如:”{call proce()}”,其中proce()为存储过程的名称。存储过程也使用executeQuery()或者execute()方法来执行。程序代码如下: 1.编写useSearch 类的基本框架,在该类中仅包括main()方法,在main(

博为峰Java技术题 ——JavaSE Java Swing在顶层容器中添加组件Ⅱ

。_饼干妹妹 提交于 2020-03-06 18:20:25
博为峰 小博老师: 下面将通过一个 Swing 程序来讲述如何在顶层容器中添加内容面板。其程序代码如下所示: /** * 这段代码主要是介绍如何在一个顶层容器内获取一个面板,也可以说是在顶层容器内产生一个默认的内容面板. */ public class BWFcontainers { static int width =300; static int height =200; public static void main(String[] args){ JFrame jf= new JFrame("添加内容面板测试");//创建一个顶层容器类对象 jf.setSize( width , height );//设置顶层容器类对象的大小 jf.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );//设置顶层容器类时象的关闭功能 JPanel contentPane= new JPanel(); //创建一个中间容器类对象 jf.setContentPane(contentPane);//将中间容器组件对象contentPane设置为内容面板 jf.setVisible( true );//设置顶层容器类对象的可见性 } } 上面程序的运行结果如下图所示: 上面的程序段主要用于将一个内容面板添加到顶层容器中去

经典Java面试题-内部类

偶尔善良 提交于 2020-03-02 04:30:14
[ 面试原题] 以下代码运行结果是什么? public class BwfOuterClass { private int x = 1; private int y = 2; private class BwfInnerClass{ private int x = 3; public void print(){ System.out.println("博为峰:x+y="+(x+y) ); } } public static void main(String[] args) { new BwfOuterClass().new BwfInnerClass().print(); } } [ 正确答案] 博为峰:x+y=5 [ 面试技术点] Java中内部类的使用。 [ 解读] 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为 内部类 。广泛意义上的内部类一般来说包括这三种:成员内部类、局部内部类、匿名内部类,如下图所示: 本题考的是成员内部类。成员内部类是最普通的内部类,它的定义为位于另一个类的内部,类似于一个成员属性。可以使用修饰符private、default、protected、public。 本题中BwfInnerClass是BwfOuterClass的成员内部类,成员内部类可以无条件访问外部类的所有成员属性和成员方法

博为峰Java技术题 ——JavaSE Java Swing概述

一曲冷凌霜 提交于 2020-02-29 09:05:09
博为峰 小博老师: [什么是Java Swing] Swing是一个用于开发 Java 图形界面应用程序的开发工具包,它是以抽象窗口工具包(AWT)为基础,使应用程序可跨平台在不改变任何外观风格前提下。Swing开发人员通过使用少最的代码,就可以利用Swing包中丰富、灵活的功能和模块化组件类来开发出令人满意的用户界面。 [Swing特性] 下图列出有关 Swing 的宏观特性: [Swing包的结构] 下图列出Swing包及其功能,如下图所示: [第一个Java Swing程序实例] 以下实例用于显示一个带有helloswingBWF标题的窗口,示例代码如下: import javax.swing.JFrame; public class BWFSwingtest { static int width =300; static int height =200; public static void main(String[] args){ JFrame jf= new JFrame("helloswingBWF"); jf.setSize( width , height );//设置窗口大小 //使窗口上的最大化、最小化以及关闭健发挥作用 jf.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE ); jf.setVisible(

博为峰Java技术题 ——JavaSE Java方法Ⅳ

白昼怎懂夜的黑 提交于 2020-02-29 01:52:29
博为峰 小博老师: [ 构造方法] 当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。 通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。 不管你与否自定义构造方法,所有的类都有构造方法,因为 Java 自动提供了一个默认构造方法,它把所有成员初始化为0。 一旦你定义了自己的构造方法,默认构造方法就会失效。 [ 实例] 下面是一个使用构造方法的例子: 你可以像下面这样调用构造方法来初始化一个对象: 大多时候需要一个有参数的构造方法。 [ 实例] 下面是一个使用构造方法的例子: 来源: oschina 链接: https://my.oschina.net/u/2971691/blog/797103

博为峰Java技术文章 ——JavaEE Hibernate配置文件

天涯浪子 提交于 2019-12-05 23:25:32
博为峰小博老师 : Hibernate 通过读取默认的XML配置文件hibernates.cfg.xml加载教据库的配置信息,该配置文件被默认放于项目的classpath根目录下。 <?xml version= '1.0' encoding= 'UTF-8' ?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name= "dialect" >org.hibernate.dialect.MySQLDialect</property><!--数据库方言--> <property name= "connection.url" >jdbc:mysql://127.0.0.1:3306/banggo?useUnicode=true&characterEncoding=utf8</property><!--数据库URl --> <property name= "connection.username" >root<