计算机系统结构DLX指令编写矩阵相乘,要求编写和实现菜单功能 3C
           .data

dat1: .space 64
dat2: .space 64
result: .space 64

Prompt1: .asciiz "~~~~~~~~~~~~~~~~~~~~~~~martrix multiply~~~~~~~~~~~~~~~~~~~~~\n
——————————————————————written by hhq—\n
1.请输入矩阵A和矩阵B \n
2.输出矩阵A和矩阵B \n
3.显示相乘的结果 \n
4.重复操作 \n
5.退出 \n

______________________________________________________________\n
****************************************************************
Prompt6: .asciiz 请输入你的选择:\n"

PrintfFormat: .asciiz "%d "
.align 2
PrintfPar: .word PrintfFormat
PrintfValue: .space 4
PrintfFormat1: .asciiz "\n"
.align 2
PrintfPar1: .word PrintfFormat1
PrintfValue1: .space 4
PrintfFormat2: .asciiz "Output the mactrix A:\n"
.align 2
PrintfPar2: .word PrintfFormat2
PrintfValue2: .space 4
PrintfFormat3: .asciiz "Output the mactrix B:\n"
.align 2
PrintfPar3: .word PrintfFormat3
PrintfValue3: .space 4
PrintfFormat4: .asciiz "Output the mactrix C:\n"
.align 2
PrintfPar4: .word PrintfFormat4
PrintfValue4: .space 4
.text
.global main
menu :

addi r15,r0,Prompt6
beqz

addi r1,r0,Prompt1
jal InputUnsigned ;read uns.-integer into R1
movi2fp f1,r1 ;矩阵A的行数
addi r1,r0,Prompt2
jal InputUnsigned ;read uns.-integer into R1
movi2fp f2,r1 ;矩阵A的列数和B的行数
addi r1,r0,Prompt3
jal InputUnsigned ;read uns.-integer into R1
movi2fp f3,r1 ;矩阵B的列数

            movfp2i         r8,f1
            movfp2i         r6,f2
            multu           r4,r6,r8          ;A的元素的个数r4
            addi            r2,r10,dat1       ;指向A的首地址

loop1:
add r1,r0,Prompt4 ;分别读入A矩阵的元素值
jal InputUnsigned
sb 0(r2),r1 ;存储字节,读入元素
addi r2,r2,1 ;元素个数加1
sub r4,r4,1 ;总个数减1
bnez r4,loop1 ;总个数为不为0跳转输入下一个元素

            addi            r10,r0,0          ;分别独处矩阵A的元素值
            addi            r2,r10,dat1       ;指向A的首地址
            sw              PrintfValue2,r1
            addi            r14,r0,PrintfPar2
            trap            5

loopA:
lbu r1,0(r2)
sw PrintfValue,r1
addi r14,r0,PrintfPar ;换行
trap 5
addi r2,r2,1 ;元素个数加1
sub r6,r6,1 ;矩阵A的列数减1
beqz r6,outputA ;矩阵A的列数为0时跳转
j loopA ;否则继续
outputA:
sw PrintfValue1,r1
addi r14,r0,PrintfPar1
trap 5

sub r8,r8,1 ;矩阵A的行数减1
beqz r8,countinueB ;为0跳转
movfp2i r6,f2
j loopA
countinueB:
movfp2i r6,f2
movfp2i r12,f3
addi r10,r0,0
multu r4,r6,r12 ;B的元素的个数r4
addi r2,r10,dat2 ;指向B的首地址
loop2:
add r1,r0,Prompt5 ;分别读入矩阵B的元素值
jal InputUnsigned
sb 0(r2),r1
addi r2,r2,1
sub r4,r4,1
bnez r4,loop2

            addi            r10,r0,0
            addi            r2,r10,dat2
            sw              PrintfValue3,r1
            addi            r14,r0,PrintfPar3
            trap            5  

loopB:
lbu r1,0(r2)
sw PrintfValue,r1
addi r14,r0,PrintfPar
trap 5
addi r2,r2,1
sub r12,r12,1
beqz r12,outputB
j loopB
outputB:
sw PrintfValue1,r1
addi r14,r0,PrintfPar1
trap 5

sub r6,r6,1
beqz r6,countinue
movfp2i r12,f3
j loopB
countinue:
addi r11,r0,0 ;表示矩阵C的一个元素的累加器
addi r4,r0,0 ;初始化矩阵C的偏移量
addi r5,r0,0 ;矩阵A当前被扫描的行号

line: movi2fp f4,r5 ;判断是否扫描完
ltf f4,f1 ;f4>f1跳转(矩阵A的行是否扫描完)

bfpf finish ;是,则跳转结束程序
addi r6,r0,0 ;col,r6表示当前B矩阵的列号

column: movi2fp f4,r6

ltf f4,f3 ;col(f3)<f4,矩阵B的列是否扫描完
bfpf leveladd ;是,则跳到矩阵a的下一行

            movfp2i         r1,f2  
            multu           r10,r5,r1           ;i<-l*n   r10表示矩阵A当前行的第一个元素的索引
            addi            r7,r6,0             ;mov col to j(矩阵B某一列的某个元素的索引)
            addi            r11,r0,0            ;temp=0,矩阵C当前的元素值的初始化
            addi            r9,r5,1             ;r9<-l+1,r9代表矩阵A当前数组中的实际行号(r5的初值为0)
            movfp2i         r1,f2               ;f2是矩阵A的列数
            multu           r9,r1,r9            ;p<-n*(l+1),r9代表矩阵A当前行中最后一个元素在数组中的索引

calculate: movi2fp f4,r10
movi2fp f9,r9
ltf f4,f9 ;compare i to pz(判断是否计算到当前行的最后一个元素)
bfpf asign ;当前行列相乘完毕,得出结果矩阵C的一个元素(跳转赋值)
addi r1,r10,dat1 ;取矩阵A当前元素在内存区域中的地址
lbu r2,0(r1) ;从r1所指向的内存单元中取出矩阵A当前的元素暂存在r2
addi r1,r7,dat2 ;取矩阵B当前元素在内存区域中的地址
lbu r3,0(r1) ;从r1所指向的内存单元中取出矩阵B当前的元素暂存在r3
multu r1,r2,r3 ;temp1<-dat1[i]+dat2[j]
add r11,r11,r1 ;temp<-temp+temp1,累加到累加器
addi r10,r10,1 ;i++,计算矩阵A当前行的下个元素的索引
movfp2i r1,f3

add r7,r7,r1 ;j<-j+k,计算矩阵B的当前列的下个元素的索引
j calculate

asign: addi r1,r4,result ;r1表示矩阵C当前的地址
sb 0(r1),r11 ;store result,把新计算出来的元素放入当前内存单元
addi r4,r4,1 ;赋值完一个元素,偏移量自增1
addi r6,r6,1 ;矩阵B的当前列数自增1
j column ;矩阵B新的一列开始

leveladd: addi r5,r5,1 ;矩阵A当前行自增1
j line ;矩阵A新的一行开始
finish:
addi r10,r0,0 ;分别读出矩阵C的元素值
movfp2i r8,f1
movfp2i r12,f3
addi r2,r10,result
sw PrintfValue4,r1
addi r14,r0,PrintfPar4
trap 5
loop3:
lbu r1,0(r2)
sw PrintfValue,r1
addi r14,r0,PrintfPar
trap 5
addi r2,r2,1
sub r12,r12,1
beqz r12,outputC
j loop3
outputC:
sw PrintfValue1,r1
addi r14,r0,PrintfPar1
trap 5

sub r8,r8,1
beqz r8,againChoice
movfp2i r12,f3
j loop3
againChoice:
add r1,r0,Prompt6
jal InputUnsigned
beqz r1,end
j main
end: trap 0 ;


1个回答

指向的内存单元中取出矩阵B当前的元素暂存在r3
multu r1,r2,r3 ;temp1<-dat1[i]+dat2[j]
add r11,r11,r1 ;temp<-temp+temp1,累加到累加器
addi r10,r10,1 ;i++,计算矩阵A当前行的下个元素的索引
movfp2i r1,f3

add r7,r7,r1 ;j<-j+k,计算矩阵B的当前列的下个元素的索引
j calculate
asign: addi r1,r4,result ;r1表示矩阵C当前的地址
sb 0(r1),r11 ;store result,把新计算出来的元素放入当前内存单元
addi r4,r4,1 ;赋值完一个元素,偏移量自增1
addi r6,r6,1 ;矩阵B的当前列数自增1
j column ;矩阵B新的一列开始
leveladd: addi r5,r5,1 ;矩阵A当前行自增1
j line ;矩阵A新的一行开始
finish:
addi r10,r0,0 ;分别读出矩阵C的元素值
movfp2i r8,f1
movfp2i r12,f3
addi r2,r10,result
sw PrintfValue4,r1
addi r14,r0,PrintfPar4
trap 5
loop3:
lbu r1,0(r2)
sw PrintfValue,r1
addi r14,r0,PrintfPar
trap 5
addi r2,r2,1
sub r12,r12,1
beqz r12,outputC
j loop3
outputC:
sw PrintfValue1,r1
addi r14,r0,PrintfPar1
trap 5

sub r8,r8,1
beqz r8,againChoice
movfp2i r12,f3
j loop3
againChoice:
add r1,r0,Prompt6
jal InputUnsigned
beqz r1,end

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
计算机系统结构,DLX处理器程序设计的问题

计算机系统结构课实验,让使用 ** *DLX* ** 写一段汇编代码,完成 **双精度浮点** 的 **除法** 运算,并输出结果。 新手不太会往这里码代码,可能下面代码格式有点乱。请谅解TAT 然后,我和同学照实验指导书给出的例子,照猫画虎做出的代码大致是: .data Prompt1: .asciiz "First Number:" Prompt2: .asciiz "Second Number: " PrintfFormat: .asciiz "div = %g\n\n" .align 2 PrintfPar: .word PrintfFormat PrintfValue: .space 8 .text .global main main: addi r1,r0,Prompt1 jal InputUnsigned add r2,r1,r0 addi r1,r0,Prompt2 jal InputUnsigned bnez r1,Loop Loop: movi2fp f10,r1 cvti2d f2,f10 movi2fp f11,r2 cvti2d f1,f11 divf f1,f1,f2 Finish: sF PrintfValue,f1 addi r14,r0,PrintfPar trap 5 trap 0 使用DLX将这个程序和一个input.s程序装入主存后,提示出错,input.s应该是没有错误的,因为和别的程序同时装入主存可以运行。错误截图下面附上。 ![CSDN移动问答][1] 这个问题我们怎么都解决不了,求助。 [1]: http://a.hiphotos.baidu.com/album/pic/item/e824b899a9014c0846f3e949087b02087af4f416.jpg?psign=46f3e949087b02087bf40ad162d9f2d3562c11dfa8ecd02e

关于C++的取指令、执行指令的问题,希望广大C++大神不吝赐教!!!

使用C++实现 **DLX**简单指令的模拟器![图片说明](https://img-ask.csdn.net/upload/201608/15/1471251088_295902.png) 要求:能够读取指令文件中的每一行的指令,识别操作码、操作数,并能对相关文本文件进行操作,将结果输出至文本文件当中 ![图片说明](https://img-ask.csdn.net/upload/201608/15/1471251371_31553.png) 例如指令文本文件中所写的指令如下: ![图片说明](https://img-ask.csdn.net/upload/201608/15/1471251431_862438.png) 所编写的C++程序能够识别每一行的不同指令,并能进行相关操作。 DLX指令集: ![图片说明](https://img-ask.csdn.net/upload/201608/15/1471251608_381420.png) ![图片说明](https://img-ask.csdn.net/upload/201608/15/1471251644_284810.png) ![图片说明](https://img-ask.csdn.net/upload/201608/15/1471251653_301816.png) 要求写出源代码,希望各路大神各显神通哦!!!

dlx算法问题,求解答,高分啊

有个算法面试-面试官问了dancinglink-完全不知道这是什么啊-后来知道可能是解精确覆盖问题的-求大家发份代码-并且能够在站内解释一下-才给这么多分哦,求个数独问题的dancinglink解法,有源代码,线上解释。

采用基于Tomasulo算法的前瞻执行对下列指令的第一次循环进行调度

采用基于Tomasulo算法的前瞻执行对下列指令的第一次循环进行调度。假设程序开始前分支预测为成功,但是预测错误。在第一次循环结束之前需要继续调度第二次循环部分的指令。假设有足够的运算部件和保留站,2条CDB,但是只有10个ROB,假设分支和整数加法执行需要1个时钟周期,LD/ST执行需要2个时钟周期(1地址计算+1访存)。 Loop: LD R2, 0(R1) DADDI R2, R2,#1 SD R2, 0(R1) DADDI R1, R1, #4 BNEZ R2, Loop

c语言,要写一个将c语言输入转换成mips的程序

![图片说明](https://img-ask.csdn.net/upload/201810/01/1538392713_156817.jpeg) 如图,将c的加减输入转换成Mips格式,最多输入128个字符,需要用到$1-$7, $t0-$t9,如果9个不够需要从$t0重新开始。 能写出来非常感谢,如果不能提供思路即可。

一个算法问题

<div class="iteye-blog-content-contain" style="font-size: 14px;"> <p>完成一个方法,返回一种排列组合的所有字符串结果的数目。排列组合的规则如下:</p> <p>1)排列组合的的字符串由a~z 26个小写字母组成;</p> <p>2)方法入参为每个字符串长度;</p> <p>3)每个字符串中的后一个字符的字母顺序要大于前一个字符; 例如:abc 合法;bac、aac 不合法;</p> <p>这个问题没有头绪,递归好像不好实现,望大家答疑解惑!</p> </div>

一个简单的四则计算程序,怎么在用户未完整输入算式就按回车的时候在屏幕上显示错误信息?

刚学C语言,写了下面这个四则运算的代码。测试的时候发现如果我只输入一个数字或者一个数字加算术符号就按回车的话,会出bug。我想实现的是在用户这样做的时候打印出一行提示信息,然后重新开始整个程序。不知道怎么实现,求教。 ``` #include <stdio.h> int main(void) { double dig; //操作数 int judge = 0; //输入合理性计算 double result = 0; //初始计算结果 int sign; //运算符号 for (;;) { while ((judge = scanf("%lf",&dig)) == 0) //判断第一个输入的值为数字 { printf("Please input correctly!\n"); fflush(stdin); } result = dig; sign = getchar(); judge = scanf("%lf",&dig); while (((sign == 42) || (sign == 43) || (sign == 45) || (sign == 47) ) && (judge == 1)) //当读取到加减乘除符号和数字时进行计算 { if (sign == 43) //加法 result += dig; else if (sign == 45) //减法 result -= dig; else if (sign == 42) //乘法 result *= dig; else if (sign == 47) //除法 result /= dig; sign = getchar(); //获得下一个运算符号 if(sign == '\n') //若为回车则打印计算结果 printf("The result is %.2lf.\n", result); else judge = scanf("%lf",&dig); //否则读取下一个数字 } if (((sign != 42) && (sign != 43) && (sign != 45) && (sign != 47) && (sign != '\n') )|| (judge == 0)) { printf("Please input correctly!\n"); //如果输入运算符和数字以外的东西,提示并清除 fflush(stdin); } } return 0; } ```

一个关于算法如何实现的问题,求解答?

共有14个数值A1~A14,其中A1~A14的数值是从小到大排列。现有一个数值B,要与A1~A14的和比较,如何确定A1~A14之中哪几个加起来与数值B最接近?

kuangbin简单搜索的b题始终ac不掉,请各位大神看看哪里出错了

原题链接 https://vjudge.net/contest/146840#problem/B 我的代码 #include<stdio.h> #include<math.h> #include<string.h> #include<algorithm> #include<iostream> #include<queue> using namespace std; struct D { int x,y,z,s; }beg,next; queue<D> q; int l,r,c; int flag; int ans; int dx[6]={-1,0,1,0,0,0}; int dy[6]={0,-1,0,1,0,0}; int dz[6]={0,0,0,0,-1,1}; int vis[35][35][35]; char pic[35][35][35]; int bfs() { while(q.size()) { beg=q.front(); q.pop(); if(pic[beg.x][beg.y][beg.z]=='E'){flag=1;ans=beg.s;return ans;} for(int i=0;i<=5;i++) { next.x=beg.x+dx[i]; next.y=beg.y+dy[i]; next.z=beg.z+dz[i]; if(next.x>=0&&next.x<l&&next.y>=0&&next.y<r&&next.z>=0&&next.z<c&& vis[next.x][next.y][next.z]==0) { if(pic[next.x][next.y][next.z]=='.'||pic[next.x][next.y][next.z]=='E') { vis[next.x][next.y][next.z]=1; next.s=beg.s+1; q.push(next); } } } } } int main() { int i,j,k,si,sj,sk; while(scanf("%d%d%d",&l,&r,&c)!=EOF) { if(!l&&!r&&!c)break; for(i=0;i<l;i++) { for(j=0;j<r;j++) { scanf("%s",pic[i][j]); for(k=0;k<=c;k++) if(pic[i][j][k]=='S'){si=i;sj=j;sk=k;} } getchar(); } flag=0;ans=0; memset(vis,0,sizeof(vis)); beg.x=sk;beg.y=sj;beg.z=sk;beg.s=0; while(q.size())q.pop(); vis[si][sj][sk]=1; q.push(beg); bfs(); if(flag==1)printf("Escaped in %d minute(s).\n",ans); else printf("Trapped!\n"); } return 0; }

android adapter空指针异常

``` public class MainActivity extends AppCompatActivity { DatabaseHelper databaseHelper; private static Toolbar mToolbar; private static TextView mMaintitle,mMaincontent,mMaintime; public static EditText dlx_Input1,dlx_Input2; public static String datetime; public static View mLine; MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findName(); setSupportActionBar(mToolbar); databaseHelper = new DatabaseHelper(this, databaseHelper.DATABASE_NAME, null, databaseHelper.DATABASE_VERSION); //myAdapter.getData2(); myAdapter = new MyAdapter(this); myAdapter.lv = (ListView)findViewById(R.id.lv); myAdapter.data = myAdapter.getData(); MyAdapter adapter = new MyAdapter(this); myAdapter.lv.setAdapter(adapter); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_add: showDialog_Layout(MainActivity.this); } return super.onOptionsItemSelected(item); } public void findName() { mToolbar = (Toolbar) findViewById(R.id.toolbar); mMaintitle = (TextView)findViewById(R.id.dlx_maintitle); mMaincontent = (TextView)findViewById(R.id.dlx_maincontent); mMaintime = (TextView)findViewById(R.id.dlx_maintime); mLine = (View)findViewById(R.id.dlx_line); } private void showDialog_Layout(Context context) { dlx_Input1 = (EditText)findViewById(R.id.dlx_Input1); dlx_Input2 = (EditText)findViewById(R.id.dlx_Input2); final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setCancelable(false); builder.setTitle(R.string.dlx_add); builder.setPositiveButton("CANCEL", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle(""); } }); builder.setNegativeButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { SQLiteDatabase db = databaseHelper.getWritableDatabase(); ContentValues values = new ContentValues(); SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); datetime = s.format(new java.util.Date()); values.put("title", String.valueOf(dlx_Input1.getText())); values.put("content", String.valueOf(dlx_Input2.getText())); values.put("time", datetime); db.insert(databaseHelper.TABLE_NAME, null, values); myAdapter.getData(); } }); builder.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); menu.findItem(R.id.action_add).setChecked(true); return super.onCreateOptionsMenu(menu); } } public class MyAdapter extends BaseAdapter { public static ListView lv; public static List<Map<String, Object>> data; public LayoutInflater mInflater = null; MainActivity mainActivity; DatabaseHelper databaseHelper; public MyAdapter(Context context) { this.mInflater = LayoutInflater.from(context); } public List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map; for(int i=0;i<10;i++) { map = new HashMap<String, Object>(); map.put("title",String.valueOf(mainActivity.dlx_Input1.getText())); map.put("content", String.valueOf(mainActivity.dlx_Input2.getText())); map.put("time",mainActivity.datetime); list.add(map); } return list; } static class ViewHolder { public TextView title; public TextView content; public TextView time; public View line; } public int getCount() { //How many items are in the data set represented by this Adapter. //在此适配器中所代表的数据集中的条目数 return data.size(); } public Object getItem(int position) { // Get the data item associated with the specified position in the data set. //获取数据集中与指定索引对应的数据项 return position; } public long getItemId(int position) { //Get the row id associated with the specified position in the list. //获取在列表中与指定索引对应的行id return position; } //Get a View that displays the data at the specified position in the data set. //获取一个在数据集中指定索引的视图来显示数据 public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; //如果缓存convertView为空,则需要创建View if(convertView == null) { holder = new ViewHolder(); //根据自定义的Item布局加载布局 convertView = mInflater.inflate(R.layout.commentlayout, null); holder.title = (TextView)convertView.findViewById(R.id.dlx_maintitle); holder.content = (TextView)convertView.findViewById(R.id.dlx_maincontent); holder.time = (TextView)convertView.findViewById(R.id.dlx_maintime); holder.line = (View)convertView.findViewById(R.id.dlx_line); //将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag convertView.setTag(holder); }else { holder = (ViewHolder)convertView.getTag(); } holder.title.setText((String)data.get(position).get("title")); holder.content.setText((String)data.get(position).get("content")); holder.time.setText((String)data.get(position).get("time")); holder.line.setBackgroundColor(mainActivity.getResources().getColor(R.color.colorPrimaryDark)); return convertView; } ``` 在map.put("title",String.valueOf(mainActivity.dlx_Input1.getText()));和myAdapter.data = myAdapter.getData();报空指针异常 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference,求大神指点!!!

提交的时候表单的时候需要一起提交自动生成的cookie值

有两个网站 A和B 从A网站内点击链接进入网站B 加载一个form的时候 系统会自动生成一个cookie值 内容如下:Cookie: PHPSESSID=8elo48ck7pmrbpragcjq6qqu02; default_csrf_cookie_name=5dfd277df2749bebafc26cd5a90cc937; default_pyrocms_development=%2BhGSgpWQhawQjBo3TbDRDfCDK7xNQqSSWjVietd9Pj1Vnt7dlx2EV2iHp5VFAF6ew0S2HyWjVtBgGpdSSJ7aP8V3EwthsfwlDQHoCFntDMKW%2BrW4Ts8SoSRIg0rJ7Eek0XWI2jgzSmML%2FXJAN8WJmNfRSeBLIXBdVCrVrWyWBb9y7P%2F0Oa4i3Msdr6c3nBee4TaAgc9qZQuptV0%2FTTEXnAK%2BT1ieDbQDbTKDJtgyI1Eh0xRx4p1CCGnOP94a18xSHvsN1mEfgJYulDxv7whdw42PZy91jhQt1zZReAg%2BOXQKUnhuR%2Bcpk7GorEN04qckN%2Bv%2Bh3LlQEdA5AjEetMZQsmvexvvaTSZnXyhg0EiHjKlVOMU4BDoTIK1L1Sp4F%2Fz 加载的form 有两个field: username 和password 用户填完username和password以后 需要把上面的cookie值一起提交 该如何实现

android listview添加出现问题

我是一枚新手,在写添加listview并对数据库进行增删改查时遇到了问题,添加listview时我想添加一个item可是一添加就添加了好多行,还有插入数据后不能listview没有显示之前插入的值,求大神给看看!这是我的代码: ``` public class DLXMainActivity extends AppCompatActivity { private Toolbar mToolbar; public static EditText mDlxInput1, mDlxInput2;//输入框 public TextView mTitle, mContent, mTime;//显示内容 DatabaseHelper mDatabaseHelper = new DatabaseHelper(this); static List<Comment> mList = new ArrayList<>(); static Comment mComment = new Comment(); MyAdapter mAdapter; ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dlx_task3_dlxmain); initViewValue(); } public void initViewValue() { findViews(); setSupportActionBar(mToolbar); setOnclicklistener(); } //数据库的初始化和按下删除的监听事件 public void setOnclicklistener() { mDatabaseHelper = new DatabaseHelper(this); mAdapter = new MyAdapter(this, mList); mListView.setAdapter(mAdapter); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mComment = mList.get(position); int positioncurrent = mComment.getId(); mDatabaseHelper.databaseDelete(positioncurrent); mList.remove(mComment); mAdapter.notifyDataSetChanged(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.dlx_task3_menu, menu); return super.onCreateOptionsMenu(menu); } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_add: showDialog_Layout(DLXMainActivity.this); break; } return super.onOptionsItemSelected(item); } //对话框 private void showDialog_Layout(final Context context) { LayoutInflater inflater = LayoutInflater.from(this); final View textEntryView = inflater.inflate(R.layout.dlx_task3_dialoglayout, null); final AlertDialog.Builder builder = new AlertDialog.Builder(context); mDlxInput1 = (EditText) textEntryView.findViewById(R.id.dlx_Input1); mDlxInput2 = (EditText) textEntryView.findViewById(R.id.dlx_Input2); builder.setCancelable(false); builder.setTitle(R.string.dlx_add); builder.setView(textEntryView); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { setTitle(""); } }); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { mDatabaseHelper.databaseInsert(); mDatabaseHelper.databaseFind(context); mAdapter.notifyDataSetChanged(); } }); builder.show(); } public void findViews() { mToolbar = (Toolbar) findViewById(R.id.toolbar); mTitle = (TextView) findViewById(R.id.dlx_maintitle); mContent = (TextView) findViewById(R.id.dlx_maincontent); mTime = (TextView) findViewById(R.id.dlx_maintime); mListView = (ListView) findViewById(R.id.dlx_lv); } } public class MyAdapter extends BaseAdapter { public List<Comment> list; public LayoutInflater mInflater = null; Context context; DatabaseHelper mDatabaseHelper = new DatabaseHelper(context); public MyAdapter(Context context, List<Comment> list) { this.mInflater = LayoutInflater.from(context); this.context = context; this.list = list; } //ViewHolder静态类 static class ViewHolder { public TextView title; public TextView content; public TextView time; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } //获取一个在数据集中指定索引的视图来显示数据 public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder holder = null; //如果缓存convertView为空,则需要创建View if (convertView == null) { holder = new ViewHolder(); //根据自定义的Item布局加载布局 convertView = mInflater.inflate(R.layout.dlx_task3_commentlayout, null); holder.title = (TextView) convertView.findViewById(R.id.dlx_maintitle); holder.content = (TextView) convertView.findViewById(R.id.dlx_maincontent); holder.time = (TextView) convertView.findViewById(R.id.dlx_maintime); //将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.title.setText(list.get(position).getTitle()); holder.content.setText(list.get(position).getContent()); holder.time.setText(mDatabaseHelper.getTimeShow(context, (list.get(position).getTime()))); return convertView; } } public class DatabaseHelper extends SQLiteOpenHelper { public static final int DATABASE_VERSION = 1; public static final String DATABASE_NAME = "Comment.db"; public static final String TABLE_NAME = " comment"; public long mDatetimecurrent; Context context; public long mDatetime; // TODO: 2016/5/18 public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE" + TABLE_NAME + "(" + Comment.Commentinter.EVENT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + Comment.Commentinter.EVENT_TITLE + " TEXT NOT NULL, " + Comment.Commentinter.EVENT_CONTENT + " TEXT NOT NULL, " + Comment.Commentinter.EVENT_TIME + " INTEGER NOT NULL);"); } public void databaseInsert() { SQLiteDatabase db = getWritableDatabase(); ContentValues values = new ContentValues(); mDatetime = System.currentTimeMillis(); //开始组装第一条数据 values.put("title", String.valueOf(DLXMainActivity.mDlxInput1.getText())); values.put("content", String.valueOf(DLXMainActivity.mDlxInput2.getText())); values.put("time", mDatetime); db.insert(TABLE_NAME, null, values);//插入第一条数据 db.close(); } /** * 删除数据库元素 * * @param */ public void databaseDelete(int positioncurrent) { SQLiteDatabase db = getWritableDatabase(); String[] args = {String.valueOf(positioncurrent)}; db.delete("comment", Comment.Commentinter.EVENT_ID + "=?", args); db.close(); } /** * 从数据库中取值并放到listview中 * @param context */ public void databaseFind(Context context) { this.context = context; SQLiteDatabase db = getReadableDatabase(); Cursor cursor = db.query(DatabaseHelper.TABLE_NAME,new String[] {Comment.Commentinter.EVENT_ID, Comment.Commentinter.EVENT_TITLE, Comment.Commentinter.EVENT_CONTENT,Comment.Commentinter.EVENT_TIME}, null, null, null, null, null, null); //DLXMainActivity.mList.clear(); while (cursor.moveToNext()) { String title = cursor.getString(cursor.getColumnIndex(Comment.Commentinter.EVENT_TITLE)); String content = cursor.getString(cursor.getColumnIndex(Comment.Commentinter.EVENT_CONTENT)); long time = cursor.getLong(cursor.getColumnIndex(Comment.Commentinter.EVENT_TIME)); int id = cursor.getInt(cursor.getColumnIndex(Comment.Commentinter.EVENT_ID)); DLXMainActivity.mComment.setTitle(title); DLXMainActivity.mComment.setContent(content); DLXMainActivity.mComment.setTime(time); DLXMainActivity.mComment.setId(id); DLXMainActivity.mList.add(DLXMainActivity.mComment); } cursor.close(); db.close(); } public String getTimeShow(Context context, long datetime) { mDatetimecurrent = System.currentTimeMillis(); long time = mDatetimecurrent - datetime; if (time / 1000 != 0) { if (time / 60000 != 0) { if (time / 3600000 != 0) { if (time / 86400000 != 0) { return time / 86400000 + context.getString(R.string.dlx_day1); } else { return time / 3600000 + context.getString(R.string.dlx_hour); } } else { return time / 60000 + context.getString(R.string.dlx_minute); } } else { return time / 1000 + context.getString(R.string.dlx_second); } } else { return context.getString(R.string.dlx_gang); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { onCreate(db); } @Override public void onOpen(SQLiteDatabase db) { super.onOpen(db); } ```

android listview 删除item同时删除对应行数的数据库内容

``` listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?>parent,View view,int position,long id) { Map<String, Object> positioncurrent = list.get(position); comment.setId(Integer.parseInt(String.valueOf(positioncurrent))); int _id = comment.getId(); SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.delete("comment",Comment.Commentinter.EVENT_ID + getString(R.string.dlx_wenhao),new String[]{String.valueOf(id)}); db.close(); list.remove(positioncurrent); adapter.notifyDataSetChanged(); listView.setAdapter(adapter); } }); } ``` 我完全新手,这是我写的监听事件,Comment类里是我数据库表属性的setget方法,逻辑上不知道对不对,只是现在它报错, java.lang.ClassCastException: java.util.HashMap cannot be cast to com.example.dengfugui.myapplication.Comment,不让我把positioncurrent进行类型转换,我应该怎么修改?或者基于我的 Map<String, Object>和Comment有没有啥更好的方法?求大神指点!!!!谢谢了!!!

android.database.Cursor错误!

``` public class DLXMainActivity extends AppCompatActivity { DatabaseHelper databaseHelper; MyAdapter adapter; private static Toolbar toolbar; public static EditText dlx_Input1,dlx_Input2; public static String datetime; public static TextView mTitle,mContent,mTime; ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dlx_task3_dlxmain); findViews(); setSupportActionBar(toolbar); databaseHelper = new DatabaseHelper( this, databaseHelper.DATABASE_NAME, null, databaseHelper.DATABASE_VERSION); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map; databaseHelper = new DatabaseHelper(this,DatabaseHelper.DATABASE_NAME,null,1); for(int i=0;i<10;i++) { map = new HashMap<String, Object>(); String title = null,content = null,time = null; while(databaseHelper.Querytitle().moveToNext()){ title = databaseHelper.Querytitle().getString(databaseHelper.Querytitle().getColumnIndex("title")); content = databaseHelper.Querytitle().getString(databaseHelper.Querytitle().getColumnIndex("content")); time = databaseHelper.Querytitle().getString(databaseHelper.Querytitle().getColumnIndex("time")); } map.put("title",String.valueOf(title)); map.put("content", String.valueOf(content)); map.put("time",String.valueOf(time)); list.add(map); } adapter = new MyAdapter(this,list); listView.setAdapter(adapter); } ``` 完全新手!想把数据库里的内容放到页面上,错误Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 8,求大家指点!!!!!

在php中获取数组值

<div class="post-text" itemprop="text"> <p>This is the array i want to mc_gross value. please help</p> <pre><code>Array ( [id] =&gt; 5 [txn_id] =&gt; 1fadfa1sfsa2 [log] =&gt; Array ( [mc_gross] =&gt; 298.44 [invoice] =&gt; 0856545471323 [protection_eligibility] =&gt; Eligible [address_status] =&gt; confirmed [item_number1] =&gt; 12299 [payer_id] =&gt; UTU3f7TLQ6DLX4 [tax] =&gt; 0.00 [address_street] =&gt; 1 Main St [payment_date] =&gt; 02:10:29 May 28, 2015 PDT [payment_status] =&gt; Completed [charset] =&gt; windows-1252 [address_zip] =&gt; 95131 [mc_shipping] =&gt; 0.00 [mc_handling] =&gt; 0.00 [first_name] =&gt;Rohit [mc_fee] =&gt; 8.95 [address_country_code] =&gt; US [address_name] =&gt; Rohit [notify_version] =&gt; 3.8 [custom] =&gt; [payer_status] =&gt; verified [business] =&gt; sunny@gmail.com [address_country] =&gt; United States [num_cart_items] =&gt; 1 [mc_handling1] =&gt; 0.00 [address_city] =&gt; San Jose [verify_sign] =&gt; AHr7LP.QXtufNfq97cbEdHHkqfNkJAtdXVkTwL.GBwGZwJBQ5GAJaqaXx [payer_email] =&gt; rohit@hotmail.com [mc_shipping1] =&gt; 0.00 [tax1] =&gt; 0.00 [txn_id] =&gt; 1FV62057CK3146235 [payment_type] =&gt; instant [last_name] =&gt; Vishwakarma [address_state] =&gt; CA [item_name1] =&gt; Centro Yas Island Rotana - Demo [receiver_email] =&gt; sunny@gmail.com [payment_fee] =&gt; 8.95 [quantity1] =&gt; 1 [receiver_id] =&gt; 6Y6GRJS8NA8JE [txn_type] =&gt; cart [mc_gross_1] =&gt; 298.44 [mc_currency] =&gt; USD [residence_country] =&gt; US [test_ipn] =&gt; 1 [transaction_subject] =&gt; [payment_gross] =&gt; 298.44 [ipn_track_id] =&gt; 8656eb7f3009dd4 ) [posted_date] =&gt; 2015-05-28 09:10:34 ) </code></pre> </div>

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

HTTP与HTTPS的区别

面试官问HTTP与HTTPS的区别,我这样回答让他竖起大拇指!

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

立即提问
相关内容推荐