数据库中Cursor的问题

我做了一个list显示Sqlite数据库中查询的数据,为什么如果cursor.close()会不显示
Cursor cursor=dbhelper.getReadableDatabase().rawQuery("select * from contact_table",null);
SimpleCursorAdapter adapter=new SimpleCursorAdapter(rootview.getContext(),R.layout.list_item,cursor,new String[]{"name","phone"},new int[]{R.id.name,R.id.phone}, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
list1.setAdapter(adapter);
cursor.close();

2个回答

在onCreate()中没有关闭游标,因为需要和ListView进行数据关联,关闭curosr,会导致List无数据
所以需要在最后关闭数据库
@Override
public void onDestroy() {
super.onDestroy();
if (dbhelper!=null)
{
dbhelper.close();
}
}

还是没明白呀,游标明明是在给控件设置适配器之后才关的呀

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
安卓 从数据库中取数据Cursor的使用
listview使用cursoradapter 读取数据库中的ID字段 int a = listViewRight.getFirstVisiblePosition(); Cursor cursor1 = adapterRight.getCursor(); Cursor cursor2 = adapterRight.getCursor(); Cursor cursor3 = adapterRight.getCursor(); cursor1.moveToPosition(a); cursor2.moveToPosition(a + 1); cursor3.moveToPosition(a + 2); int listId1 = Table.getID(cursor1); int listId2 = Table.getID(cursor2); int listId3 = Table.getID(cursor3); 发现取出的三个ID都相同 单独取就正常 想请教一下这里应如何修改?
关于Python3操作数据库的问题
环境:python3 数据库sqlserver 我想了解的是:是否每一条操作数据库的语句都需要进行这6个语句: 1.conn = pymssql.connect(config) 2.cursor = conn.cursor() 3.cursor.execute(mysql) 4.conn.commit() 5.cursor.close() 6.conn.close() 那假如我 要进行两次数据库的操作,是否可以进行一次连接,一次提交,一次关闭呢?类似这样: 1.conn = pymssql.connect(config) 2.cursor = conn.cursor() 3.cursor.execute(mysql1) 4.cursor.execute(mysql2) 5.conn.commit() 6.cursor.close() 7.conn.close() 还是这么写呢: 1.conn = pymssql.connect(config) 2.cursor = conn.cursor() 3.cursor.execute(mysq1l) 4.conn.commit() 5.cursor.close() 6.conn.close() 7.conn = pymssql.connect(config) 8.cursor = conn.cursor() 9.cursor.execute(mysql2) 10.conn.commit() 11.cursor.close() 12.conn.close() 还是有其他方法? 还有想问一下两个事务的方法:conn.commt()和 conn.rollback() conn.commt()和上边的问题类似:是否每一次对数据库进行 增删改查 都要进行一次commit()? conn.rollback()滚当前游标的所有操作是指 回到 最初实例化cursor = conn.cursor()的位置吗?
为什么Python调用Pymysql执行sql查询语句比数据库中慢得很多很多?
1、问题:简单查询数据库用户表中的用户ID,用户表比较大,有一千多万条记录,用Mysql查询select uid as 用户ID from ucenter.usr_user 即可解决,但是用Python调用Pymysql链接数据库查询的时候非常慢,等了十分钟也没解决,但是加上限制查询条数select uid as 用户ID from ucenter.usr_user limit 100很快就能得到结果,具体原因是什么呢? ``` # 打开数据库连接(ip/数据库用户名/登录密码/数据库名) db = pymysql.connect(host = "", user = "", passwd = "",\ db = "", port = ) #使用cursor()方法获取操作游标 cursor = db.cursor() sql = ''' select uid as 用户ID from ucenter.usr_user ''' #使用execute方法执行SQL语句 cursor.execute(sql) # 使用 fetchone() 方法获取一条数据 data=cursor.fetchall() # 关闭数据库连接 db.close() ```
oracle数据库cursor问题,超出打开最大cursor数
我创建了一个CallableStatement用来将给object表插入数据时,将生成的id返回。 [code="java"]String objectSQL = "begin insert into object(id,name,meta_type,status,create_date,create_user_id,last_update_date,province,city,street,community,grid,operator_id) values (null,?,?,?,?,?,?,?,?,?,?,?,?) returning id into ?;end;";[/code] [code="java"]CallableStatement objectCallPS = conn.prepareCall(objectSQL);[/code] 插入的数据是通过另外一个查询做的 [code="java"]String qsql = "select "+allkey+" from " + reportTaskVO.getTableName() + " where update_flag=" + StatusUtil.NEW_DATA +" group by "+allkey;// and[/code] [code="java"] ResultSet rs = st.executeQuery(qsql);[/code] 当我迭代这个ResultSet的时候,执行一部分后,就会抛出超出最大cursor数的异常。 [code="java"]objectCallPS.execute();[/code] 之前试过修改系统中open_cursors的值,但发现,数据再多点,还是会抛出这个异常。 各位高手,知道有什么好的解决方法吗? 异常信息如下: [code="java"]java.sql.SQLException: ORA-01000: 超出打开游标的最大数 ORA-06512: 在 "SYSADMIN.OBJECT_TRIGGER", line 2 ORA-04088: 触发器 'SYSADMIN.OBJECT_TRIGGER' 执行过程中出错 ORA-06512: 在 line 1[/code]
android 将数据库中的信息显示在listview中 用哪种方法
将数据库中的大量的信息显示在listview中 用哪种方法最合适?想请问一下,现在我用的是LoaderManager.LoaderCallbacks<Cursor> 加上 CursorAdapter的方式,上网看了一下好多人的方法不一样,想请教一下哪种方法速度会好一些?
第一次数据库查询成功,第二次查询去失败了?
我编写一个Android应用,A页面拥有一个选项菜单,点击菜单中的选项,跳转到B页面,B页面接收从A页面传递的数据后,进行数据库查询,在本页面中显示相关内容。 B页面中通过动态添加View的方法,添加了按钮,点击按钮,可进行数据库查询,获取相关值在页面显示。 不过我不想每次返回A页面,选择选项菜单的另一项再进入B页面,于是我在B页面同样放置了选项菜单,让我点击B页面上的选项菜单时,直接在B页面上显示,不过却出现“java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference”的错误。 请问,要怎样做呢? 相关数据库查询的函数 public ArrayList<JapInfo> query_stylecolumn(String style_column, String alp_style) { String sql = String.format("SELECT hiragana,katakana,sound_path FROM Jap_Info AS j " + "LEFT JOIN Alp_style AS a " + "ON j.alpha_style_id = a.id " + "WHERE j.style_column = '%s' and a.style_name = '%s';",style_column,alp_style); ArrayList<JapInfo> japIf = new ArrayList<JapInfo>(); Cursor cursor = mDB.rawQuery(sql,null); while (cursor.moveToNext()){ JapInfo japIfo = new JapInfo(); japIfo.hiragana = cursor.getString(0); japIfo.katakana = cursor.getString(1); japIfo.sound_path = cursor.getString(2); japIf.add(japIfo); } cursor.close(); return japIf; }
当数据库为空的时候,用lisView动态加载数据空时出现的闪退问题
当我用ListView动态加载数据库中的文件时,当数据库中确实存在文件时,一切正常,能够正常显示。 但是当数据库为空或者吗,没有新建数据库的时候,用ListView加载时,就会出现闪退的问题。 求大神支招,怎么解决。附上我的获取数据库中数据的方法 ```private ArrayList<String> getData(){ SQLiteDatabase db =openOrCreateDatabase("text.db", MODE_PRIVATE, null); Cursor c =db.rawQuery("select * from texttb", null); if(c!=null){ while(c.moveToNext()){ mArrayList.add(c.getString(c.getColumnIndex("conent"))); } c.close(); } else{ mArrayList.add("暂时还没有添加任何的便签消息"); } db.close(); return mArrayList; } ```
请问在游标中怎么将数据库更改到指定的数据库
declare @DB Varchar(20) declare dd_cursor cursor for select name from [master].[dbo].sysdatabases for read only open dd_cursor fetch next from dd_cursor into @DB while @@fetch_status = 0 begin print @DB use @DB --这句有错 是否有别的方法达到同样的效果,更改数据库更改到指定的数据库 end close dd_cursor deallocate dd_cursor
在数据库中省略符号和选择数据时程序崩溃
我从 sqlite 数据库中选择数据。问题是当数据库中有省略符号,比如 " I' m John " ,当我选择数据时,程序就崩溃。 当程序中没有省略符号,一切都运行正常。 选择数据的函数: String query = "SELECT * FROM " + mainCollumn + " WHERE used=0 " + " AND season <= " + seasons + " ORDER BY RANDOM() LIMIT " + count ; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(query, null); if(cursor.moveToFirst()){ do { Question question = new Question(Integer.parseInt(cursor.getString(0)), cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5), Integer.parseInt(cursor.getString(6))); questionList.add(question); }while(cursor.moveToNext()); }
android在数据库中查找相应的数据时出错。
Cursor cursor=myDatabase.rawQuery("select ids,title,times from goodtime" , null); cursor.moveToFirst(); while(!cursor.isAfterLast()){ int id=cursor.getInt(cursor.getColumnIndex("ids")); String title=cursor.getString(cursor.getColumnIndex("title")); String times=cursor.getString(cursor.getColumnIndex("times")); System.out.println(title); System.out.println(cursor.getColumnIndex("bj")); String beijing=cursor.getString(cursor.getColumnIndex("bj")); 上面是我的代码,title还是可以正常查找的,但是bj这个变量的值确实-1,同时报出错误java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.notebook/com.example.notebook.Notebook}: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it. 这是我创建的表: String ml="create table goodtime(ids integer PRIMARY KEY autoincrement,title text,content text,times text,ptpath text,mppath text,vdpath text,islock integer,password text,bj text)"; arg0.execSQL(ml); 网上说有可能大小写不对,我仔细查看了变量名都是一致的啊 求各位大神帮我看一下,指点一下我,先谢谢了!
问一个sqlite数据库的问题
这是我的数据库的属性,分别是id,content,date,week,time,tinkle,tip,repeat,priority,classify 但是在我调试,查询数据库某一行用Cursor获取的时候获取的属性却是id,content,date,week,time,tip,tinkle,repeat,priority,classify 为什么tinkle和tip换了位置,我记得变了两次了,开始是换了位置,后过了一两天又一样,今天又换了位置,这是怎么回事???我只是进行数据库的增删改查4个操作而已 android,eclipse
Python读取txt文本文件数据插入到数据库中,数据库中只有txt中最后一行数据
Python读取本地txt文本文件,将数据插入数据库表中,代码在下面,运行数据都能读取出来,但是不知道为什么数据库表中只有txt文件的最后一行数据,求问解决办法 ``` import MySQLdb # 连接mysql数据库 conn = MySQLdb.connect(host='localhost', port=3306, user='root', passwd='root', db='test21', charset='utf8') cur = conn.cursor() with open('b.txt', 'rb') as f: lines = f.readlines() if lines: for line in lines: print line line = line.strip('\n') line = line.split() # id+=1 dt = line[0] uid = line[1] cn = line[2] # cn=cn.decode('gbk').encode('utf-8') org = line[3] # print cn # 将数据插入mysql数据库 cur.execute("DROP TABLE IF EXISTS a") cur.execute("CREATE TABLE a ( dt varchar(255) NOT NULL, uid varchar(255) NOT NULL,cn varchar(255) NOT NULL,org varchar(255) NOT NULL )") cur.execute("insert into a(dt,uid,cn,org) values(%s,%s,%s,%s)", line) conn.commit() print('Total:'+str(len(lines))) print('write to mysql success') conn.close() ```
关于把socket数据写入数据库的问题
我的思路是这样的,之前的想法是:把接收过来的socket数据,充当sql的字段属性变量,来实现数据写入功能。但是几经波折,发现难题攻克不了。现在,我换了另外一种思路:事先把数据库的插入数据命令写在socket里面,到了python直接执行接收到的插入命令就完成写入的操作。具体代码如下:运行没有报错,但是写入也不成功。求各路大神指导一下(Ps: 然后,我发送:"""INSERT money(name,account, saving, expend, income) VALUES ('aaa', '111', '222', '222', '2000')""" 这段数据,python就写入数据。 ) import socket import time import pymysql host = '' port = 80 bufsize = 1024 addr = (host, port) # host设定为空,表示可以与任何ip的socket在端口51423通信 # 设置socket,AF_INET表示是IPV4标准,SOCK_STREAM是TCP传输协议 tcpSerSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) tcpSerSock.bind(addr) tcpSerSock.listen(1) quit = False shutdown = False while True: print('等待数据中...') tcpCliSock, addr = tcpSerSock.accept() # 不断监听获取新的客户端连接 print('数据来自:', addr) db = pymysql.connect("localhost", "root", "000000", "money")#连接数据库 cursor = db.cursor()#获取光标 while True: # 与客户端建立连接之后,获取客户端传来的数据 data = tcpCliSock.recv(bufsize) data = data.decode('gbk') sql = data #把接收到的数据(已经写好的插入命令模板)复制给sql try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: db.rollback() if not sql: break ss = '[%s] %s' % (time.ctime(), data) tcpCliSock.sendall(ss.encode('gbk')) print(ss) if data == 'bye': quit = True break elif data == 'shutdown': shutdown = True break print('Bye-bye:[%s:%d]' % (addr[0], addr[1])) tcpCliSock.close() if shutdown: break tcpSerSock.close() print('Server has been closed') ``` ```
Android 数据库查询报错
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.rawQuery(java.lang.String, java.lang.String[])' on a null object reference 报错行代码:Cursor cursor = mSQLiteDatabase.rawQuery("select * from users",null);
Oracle中table类型数据赋值给cursor
在Type中创建了一个类型: create or replace type bb_ptyxztqk_Table as table of bb_ptyxztqk_type; 里面放自定义的record类型,现在要将table中的数据放置到cursor中,怎么弄? 这样弄不行: open cur for select r_index, r_name, r_this, r_last, r_minus from table(cast(obj_type_tab AS bb_ptyxztqk_type)); 求大神指点! 整体代码: 类型: create or replace type bb_ptyxztqk_Table as table of bb_ptyxztqk_type; create or replace type bb_ptyxztqk_Type as object( d_index number, d_name varchar2(100), d_this number, d_last number, d_minus number ); sql: PROCEDURE pro_getdata(enddate in varchar2, cur out type_cursor) is Type RecType Is Record( r_index number, r_name varchar2(100), r_this number, r_last number, r_minus number); Type TabType Is Table Of RecType Index By Binary_Integer; myTab TabType; obj_type_tab bb_ptyxztqk_table := bb_ptyxztqk_table(); l_index number := 1; begin if (l_index = 1) then myTab(l_index).r_index := 1; myTab(l_index).r_name := '上线单位'; myTab(l_index).r_this := 123; myTab(l_index).r_last := 456; myTab(l_index).r_minus := 333; end if; l_index := myTab.First; for l_in in l_index .. myTab.count Loop obj_type_tab.EXTEND; obj_type_tab(obj_type_tab.LAST) := bb_ptyxztqk_type(myTab(l_index).r_index, myTab(l_index).r_name, myTab(l_index).r_this, myTab(l_index).r_last, myTab(l_index).r_minus); l_index := myTab.Next(l_index); end Loop; open cur for select r_index, r_name, r_this, r_last, r_minus from table(cast(obj_type_tab AS bb_ptyxztqk_type)); end;
如何避免插入重复的数据到SQLite数据库中?
当通过账号登陆时,我从服务器中获取联系信息,我把这些信息储存在SQLite中,当用户第二次登录时,我不希望再次插入 SQLite 数据库中重复的联系信息。 我使用的下面的代码,但是没有成功: boolean exist= contact_db.CheckItem(entry.getUser()); if(!exist) { // insert }else { // don't insert } DB class: Cursor mCursor = database.query(ContactsDB.TABLE_CONTACTS, allColumns, ContactsDB.CONTACT_USERID + "= ' " + name +"'" , null, null, null, null); if (mCursor != null && mCursor.moveToFirst()) return false; else return true; 如何避免第二次登录时,插入重复的数据到SQLite数据库中?
从ListView selection中获取数据库ID
我有一个 ListView 类型的 lv,通过使用 SQL 数据库里的Cursor类型的C构成下拉列表。 当 ListView 中的某一项被选中时,我想获取这列的 ID。如何实现这个功能?
python2.7连接数据库如何关闭cursor
cursor.close() 报错说IndentationError: Unexpected indent #encoding:utf8 import sys reload(sys) sys.setdefaultencoding('utf8') import MySQLdb try: conn=MySQLdb.connect(host='127.0.0.1',port=3306,user='root', passwd='123456',db='sjy1',charset='utf8') sql="select * from flower" cur=conn.cursor() cur.execute(sql) data=cur.fetchone() cur.close() #就这句话 conn.close() print data[2] except Exception,e: print e
安卓数据库,某列数据类型是Integer , 怎么从cursor对象中取出来?
![图片说明](https://img-ask.csdn.net/upload/201902/14/1550133064_525054.png) 这两个 ![图片说明](https://img-ask.csdn.net/upload/201902/14/1550133085_567096.png) ``` Cursor cursor = db.query("AllSense",null,null, null, null,null,null); int i=cursor.getCount(); if(i>5){ cursor.moveToFirst(); // int id = cursor.getInt(cursor.getColumnIndex("_id")); } ```
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问