安卓中解析json出现问题,大家帮忙看看

05-07 01:24:03.837: W/System.err(1349): org.json.JSONException: Unterminated string at character 30 of {"Result":"1","LoginPwd":"456}
05-07 01:24:03.837: W/System.err(1349): at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
05-07 01:24:03.837: W/System.err(1349): at org.json.JSONTokener.nextString(JSONTokener.java:230)
05-07 01:24:03.847: W/System.err(1349): at org.json.JSONTokener.nextValue(JSONTokener.java:107)
05-07 01:24:03.847: W/System.err(1349): at org.json.JSONTokener.readObject(JSONTokener.java:385)
05-07 01:24:03.847: W/System.err(1349): at org.json.JSONTokener.nextValue(JSONTokener.java:100)
05-07 01:24:03.857: W/System.err(1349): at org.json.JSONObject.(JSONObject.java:154)
05-07 01:24:03.857: W/System.err(1349): at org.json.JSONObject.(JSONObject.java:171)

4个回答

字符串没有正确结束,456缺引号

你解析的json格式不对,所以解析出错了,你解析JSON前,可以先检验一下json格式是否合法

确实是后台的json数组错了,真是细节决定成败啊 ,谢谢大家

你先用JSON在线解析确定JSON格式是否正确

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android 环信json解析是怎么解析的
[msg{from:sb111111, to:sb222222 body:txt:"a"]这种的json是怎么写的,我用的是fastjson,所以我想看一下实体类的代码,求求!!!
android安卓handler报空指针错
有2个按钮 一个是扫描一个查询 按扫描可以扫描二维码(二维码包含json信息)然后解析后显示在二维码信息那里 然后点查询 把二维码所含的json信息发送出去 得到返回值显示在返回信息那里 如果我只做查询 解析结果可以正常显示 如果我再点查询就会报一个空指针 说我解析那一步错 如果我不做解析 那发送也正常 有没有大神帮我看看为什么 错误信息 Process: com.abc.smartpos.cash, PID: 25086 java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference at com.abc.smartpos.cash.ScanQR.parseJSONWithGSONForQR(ScanQR.java:138) at com.abc.smartpos.cash.ScanQR$4.handleMessage(ScanQR.java:127) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697) 我的代码 ``` String orderresult; Handler handler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); orderresult=msg.getData().getString("msg"); //单独执行parseJSONWithGSONForQR()正常显示,继续执行查询操作这里报空指针 parseJSONWithGSONForQR(orderresult); responseinfo.setText(msg.getData().getString("JSON")); } }; //解析扫描得到的JSON数据后设置textview public void parseJSONWithGSONForQR(String jsonData) { String showorder; Gson gson = new Gson(); List<TransPack> transPackList = gson.fromJson(jsonData, new TypeToken<List<TransPack>>() { }.getType()); for (TransPack transPack : transPackList) { showorder="订单号:"+transPack.getId().toString()+"\n"+"意向金:"+transPack.getIntention().toString()+"\n"+"进度款:"+transPack.getProgress().toString()+"\n"+"设计费:"+transPack.getDesign().toString(); orderinfo.setText(showorder); } } //开启新线程 public void queryOrder(){ new Thread(){ public void run(){ postJson(); } }.start(); } //发送JSON并得到返回值,用handler发送 public String responseJSON; public static final String TAG="ScanQR"; public static final MediaType JSON=MediaType.parse("application/json; charset=utf-8"); public void postJson(){ OkHttpClient okHttpClient=new OkHttpClient(); RequestBody requestBody=RequestBody.create(JSON,orderresult); Request request=new Request.Builder() .url("http://api.jisuapi.com/iqa/query") .post(requestBody) .build(); try{ Response response=okHttpClient.newCall(request).execute(); if(response.isSuccessful()){ Log.i(TAG,response.body().string()); responseJSON=response.toString(); Message msg=new Message(); msg.getData().putString("JSON",responseJSON); handler.sendMessage(msg); } }catch (IOException e){ e.printStackTrace(); } } ``` ![图片说明](https://img-ask.csdn.net/upload/201712/31/1514704455_550345.jpg)
android ,IOS后台接口是用struts 还是 servlet给返回JSON的?
公司项目需要有后台接口 我这几天看了一下JSP 大概了解了一下 但对struts 和 servlet 不知道这两天那个比较适合写JSON返回客户端去解析! 希望给点指点。 两个用那个比较合理?
关于安卓内存泄露的问题
小弟最近在做一个小项目,基本上功能完成了,但发现在程序运行了几分钟后会自动退出,打印的日志信息如下: ![图片说明](https://img-ask.csdn.net/upload/201907/22/1563795606_231565.png) 然后又通过对程序进行注释后发现在将从服务器获取数据的功能注释掉后这个问题解决了,所以觉得问题应该是出在这一块,在这个功能中循环调用的函数有关于对象以及线程,不知是否是这一块的问题,现将整个程序贴上求大神帮忙看看: MainActivity中: ``` package com.example.gsontest; import android.Manifest; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.Toast; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BitmapDescriptor; import com.baidu.mapapi.map.BitmapDescriptorFactory; import com.baidu.mapapi.map.MapStatusUpdate; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MarkerOptions; import com.baidu.mapapi.map.MyLocationConfiguration; import com.baidu.mapapi.map.MyLocationData; import com.baidu.mapapi.map.OverlayOptions; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.utils.CoordinateConverter; import org.json.JSONObject; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private MapView mapView; private BaiduMap baiduMap; public LocationClient mLocationClient; public static String responseData; public double dvalueX; public double dvalueY; private boolean isFirstLocate = true; public int mXDirection; //方向类的对象 public MyOrientationListener myOrientationListener; @Override //该函数主要是进行Activity初始化 protected void onCreate(Bundle savedInstanceState) { Log.i("MainActivity","进入到onCreate函数中进行初始化"); super.onCreate(savedInstanceState); //实例化对象 mLocationClient = new LocationClient(getApplicationContext()); //注册监听器 mLocationClient.registerLocationListener(new MyLocationListener()); //初始化SDK SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mapView = (MapView) findViewById(R.id.bmpView); baiduMap = mapView.getMap(); baiduMap.setMyLocationEnabled(true); //尝试在监听按钮之前进行权限的允许 List<String> permissionList = new ArrayList<>(); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { permissionList.add(Manifest.permission.ACCESS_FINE_LOCATION); } if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { permissionList.add(Manifest.permission.READ_PHONE_STATE); } if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if (!permissionList.isEmpty()) { String[] permission = permissionList.toArray(new String[permissionList.size()]); ActivityCompat.requestPermissions(MainActivity.this, permission, 1); requestLocation(); } else { requestLocation(); } } private void requestLocation() { Log.i("MainActivity", "进入到requestLocation函数中"); initLocation(); //定位开始 initOrientationListener(); myOrientationListener.start(); mLocationClient.start(); } private void initLocation() { Log.i("MainActivity", "跳进了initLocation定位初始化函数中"); LocationClientOption option = new LocationClientOption(); option.setCoorType("bd09ll"); option.setScanSpan(1000); mLocationClient.setLocOption(option); } private void initOrientationListener() { Log.i("MainActivity", "跳进了initOrientationListener方向初始化函数中"); myOrientationListener = new MyOrientationListener(getApplicationContext()); myOrientationListener.setOnOrientationListener(new MyOrientationListener.OnOrientationListener() { @Override public void onOrientationChanged(float x) { mXDirection = (int) x; } }); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { Log.i("MainActivityActivity","进入onRequestPermissionResult函数中"); switch (requestCode) { case 1: if (grantResults.length > 0) { for (int result : grantResults) { if (result != PackageManager.PERMISSION_GRANTED) { Toast.makeText(this, "必须同意所有权限", Toast.LENGTH_LONG).show(); finish(); return; } } // sendRequestWithOkHttp(); } else { Toast.makeText(this, "发生未知错误", Toast.LENGTH_LONG).show(); finish(); } break; default: } } //定位监听器的类 public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { Log.i("MainActivity", "跳进了onReceiveLocation函数中"); if (location.getLocType() == BDLocation.TypeGpsLocation || location.getLocType() == BDLocation.TypeNetWorkLocation) { navigateTo(location); } } } private void navigateTo(BDLocation location) { Log.i("MainActivity", "跳进了navigateTo函数中"); //从服务器上获取实时的硬件位置 sendRequestWithOkHttp(); //将获取到的数据进行解析 ObjectJson(responseData); //将获取到的经纬度信息在地图上进行显示 displayLocation(dvalueX, dvalueY); //初次定位确定缩放尺寸,后面不改变便于手动伸缩 if (isFirstLocate) { BitmapDescriptor myBitMap = BitmapDescriptorFactory.fromResource(R.drawable.icon_reddirection); MyLocationConfiguration myLocationConfiguration = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, myBitMap); baiduMap.setMyLocationConfiguration(myLocationConfiguration); LatLng la = new LatLng(location.getLatitude(), location.getLongitude()); MapStatusUpdate update = MapStatusUpdateFactory.newLatLng(la); baiduMap.animateMapStatus(update); update = MapStatusUpdateFactory.zoomTo(18f); baiduMap.animateMapStatus(update); isFirstLocate = false; } //将手机当前位置的小蓝点显示在屏幕上 MyLocationData.Builder locationBuilder = new MyLocationData.Builder(); locationBuilder.latitude(location.getLatitude()); locationBuilder.longitude(location.getLongitude()); //将要执行获取方向方法 locationBuilder.direction(mXDirection); MyLocationData locationData = locationBuilder.build(); baiduMap.setMyLocationData(locationData); } //重写三个方法以对mapView进行管理,保证资源可以及时释放 @Override protected void onResume() { Log.i("MainActivity", "进入到onResume函数中"); super.onResume(); mapView.onResume(); } @Override protected void onPause() { Log.i("MainActivity", "进入到onPause函数中"); super.onPause(); mapView.onPause(); } @Override protected void onDestroy() { Log.i("MainActivity", "进入到onDestroy函数中"); super.onDestroy(); mapView.onDestroy(); baiduMap.setMyLocationEnabled(false); mLocationClient.stop(); //停止方向监听 myOrientationListener.stop(); } private void sendRequestWithOkHttp() { Log.i("MainActivity", "跳进了sendRequestWithOkHttp方法中"); new Thread(new Runnable() { @Override //重写run方法,run方法规定了该线程的具体使命 public void run() { Log.i("MainActivity","跳进OkHttp的子线程中"); try { OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://huadiheal.cn/animal/latest_data") .build(); Response response = client.newCall(request).execute(); responseData = response.body().string(); // ObjectJson(responseData); } catch (Exception e) { e.printStackTrace(); } } //创建后线程仅是占有内存资源,在JVM管理的线程中还没有这个资源,要调用父类的start方法通知JVM }).start(); } private void ObjectJson(String responseData) { Log.i("MainActivity", "跳进了ObjectJson函数中"); try { JSONObject jsonObject = new JSONObject(responseData); JSONObject valueX = jsonObject.getJSONObject("value_x"); JSONObject valueY = jsonObject.getJSONObject("value_y"); Iterator<String> iteratorX = valueX.keys(); while (iteratorX.hasNext()) { String valueXkey = iteratorX.next(); String valueXValue = valueX.getString(valueXkey); String valueYValue = valueY.getString(valueXkey); dvalueX = Double.parseDouble(valueXValue); dvalueY = Double.parseDouble(valueYValue); } } catch (Exception e) { e.printStackTrace(); } } public void displayLocation(double dvalueX, double dvalueY) { Log.i("MainActivity", "进入displayLocation中"); LatLng latLng = new LatLng(dvalueY, dvalueX); //进行坐标转换 CoordinateConverter converter = new CoordinateConverter() .from(CoordinateConverter.CoordType.GPS) .coord(latLng); LatLng dLatlng = converter.convert(); //进行刷新时,先清除上一次的overlay baiduMap.clear(); //现添加Marker将位置在地图上标出来 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_niu32); OverlayOptions option = new MarkerOptions() .position(dLatlng) .icon(bitmap); baiduMap.addOverlay(option); } } ``` 方向传感器的监听类如下: ``` package com.example.gsontest; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.util.Log; //方向监听器的类 public class MyOrientationListener implements SensorEventListener { private SensorManager mySensorManager; private Sensor mySensor; private Context myContext; private float lastX; private OnOrientationListener myOnOrientationListener; public void start(){ Log.i("MainActivity", "跳进了方向类的start函数中"); mySensorManager = (SensorManager) myContext.getSystemService(Context.SENSOR_SERVICE); if(mySensorManager!=null){ mySensor = mySensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION); } if(mySensor!=null){ //SENSOR_UI可能会出现数据滞后现象,若后期数据滞后则改成别的类型 mySensorManager.registerListener(this,mySensor,SensorManager.SENSOR_DELAY_NORMAL); } } //接触注册方向传感器监听事件,即对onDestroy中所引方法的实现 public void stop(){ Log.i("MainActivity","跳进方向类的stop函数中"); mySensorManager.unregisterListener(this); } //方向传感器的一个构造函数 public MyOrientationListener(Context myContext){ this.myContext = myContext; } @Override public void onAccuracyChanged(Sensor sensor,int accuracy){} //监听方向变化 @Override public void onSensorChanged(SensorEvent event){ Log.i("MainActivity","跳进了onSensorChanged函数中"); if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){ float x = event.values[SensorManager.DATA_X]; if (Math.abs(x-lastX)>1.0){ if(myOnOrientationListener!=null){ myOnOrientationListener.onOrientationChanged(lastX); } } lastX = x; } } public void setOnOrientationListener(OnOrientationListener myOrientationListener){ this.myOnOrientationListener = myOrientationListener; } public interface OnOrientationListener{ void onOrientationChanged(float x); } } ``` 恳请大神帮忙看下程序谢谢!!
请问,android客户端怎样解析服务器返回的数据并用adapter填充list呢?
请大家帮忙看看错误在哪,我也不知道我解析对不对,线程也没摸到门。 服务器返回的Json是: { "a":["一"."二"], "b":{"1":"1","2":"2"}, "c":{"1":"3","2":"4"}, "d":{"1":"5","2":"6"},​​ "e":{"1":"7","2":"8"} } 客户端代码(没有放上导入包): public class MainActivity extends ActionBarActivity { Context myContext; //public Thread myThread; EditText username; EditText userpwd; ListView myListView; Button ok; String uname1; String pwd1; String resultString; private SimpleAdapter simpleAdapter=null; List<Map<String, Object>> listItems = null; private Handler myHandler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); username=(EditText)findViewById(R.id.uname); userpwd=(EditText)findViewById(R.id.pwd); myListView=(ListView)findViewById(R.id.item); ok=(Button)findViewById(R.id.submit); myHandler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == 0x123) { simpleAdapter=new SimpleAdapter(myContext, listItems, R.layout.carditem, new String[]{"cj","xf","xs","km","zt"}, new int[]{R.id.chengji,R.id.xuefen,R.id.xueshi,R.id.kecheng,R.id.zhuangtai}); myListView.setAdapter(simpleAdapter); } } }; ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub new mythread().start(); } }); } private class mythread extends Thread { public void run() { uname1=username.getText().toString(); pwd1=userpwd.getText().toString(); //contTent.setText(uname1+pwd1); String url="http://202.115.137.32:8379/demo1/login.php"; HttpPost myPost=new HttpPost(url); List<NameValuePair>parms=new ArrayList<NameValuePair>(); parms.add(new BasicNameValuePair("uname", uname1)); parms.add(new BasicNameValuePair("upwd", pwd1)); try { myPost.setEntity(new UrlEncodedFormEntity(parms)); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } HttpClient myhttp=new DefaultHttpClient(); HttpResponse response=null; try { response = myhttp.execute(myPost); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { resultString = EntityUtils.toString(response.getEntity(),"UTF-8"); } catch (ParseException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { JSONObject jsonObject=new JSONObject(resultString); JSONArray km=jsonObject.getJSONArray("a"); JSONObject cj=jsonObject.getJSONObject("b"); JSONObject xs=jsonObject.getJSONObject("c"); JSONObject xf=jsonObject.getJSONObject("d"); JSONObject zt=jsonObject.getJSONObject("e"); listItems=new ArrayList<Map<String,Object>>(); for (int i = 0; i < km.length(); i++) { Map<String, Object> listItem=new HashMap<String,Object>(); listItem.put("km", km.getString(i)); listItem.put("cj", cj.optString(i+"1","无")); listItem.put("xs", xs.optString(i+"1","无")); listItem.put("xf", xf.optString(i+"1","无")); listItem.put("zt", zt.optString(i+"1","无")); listItems.add(listItem); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } myHandler.sendEmptyMessage(0x123); } } } ​
Android代码Value of type java.lang.String cannot be converted to JSONObject
在创建jsonObject对象时报错,result是发送poast请求返回的json内容 JSONObject jsonObject = new JSONObject(result); 试了网上说的什么UTF-8 BOM头的问题的方法还是不行, 哪位大神帮忙看一下 W/System.err: org.json.JSONException: Value {"mid":"004YVmzL0O67WR","m4a":"http:\/\/dl.stream.mmmusic.gg.com\/C400004YVmzL0O67WR.m4a?guid=2095717240&skey=CC1743DB70C0AFD81B6CD9A4826F619D0A60FBF859D5238D87EEA2DDEB50D1D6BF1732FDFB30E6C70648F4A57CBC2BAC740D22E1F7D2ED88&uin=0&fromtag=38","mp3_l":"http:\/\/dl.stream.mmmusic.gg.com\/M500004YVmzL0O67WR.mp3?guid=2095717240&skey=CC1743DB70C0AFD81B6CD9A4826F619D0A60FBF859D5238D87EEA2DDEB50D1D6BF1732FDFB30E6C70648F4A57CBC2BAC740D22E1F7D2ED88&uin=0&fromtag=53","mp3_h":"http:\/\/dl.stream.mmmusic.gg.com\/M800004YVmzL0O67WR.mp3?guid=2095717240&skey=CC1743DB70C0AFD81B6CD9A4826F619D0A60FBF859D5238D87EEA2DDEB50D1D6BF1732FDFB30E6C70648F4A57CBC2BAC740D22E1F7D2ED88&uin=0&fromtag=53","ape":"http:\/\/dl.stream.mmmusic.gg.com\/A000004YVmzL0O67WR.ape?guid=2095717240&skey=CC1743DB70C0AFD81B6CD9A4826F619D0A60FBF859D5238D87EEA2DDEB50D1D6BF1732FDFB30E6C70648F4A57CBC2BAC740D22E1F7D2ED88&uin=0&fromtag=53","flac":"http:\/\/dl.stream.mmmusic.gg.com\/F000004YVmzL0O67WR.flac?guid=2095717240&skey=CC1743DB70C0AFD81B6CD9A4826F619D0A60FBF859D5238D87EEA2DDEB50D1D6BF1732FDFB30E6C70648F4A57CBC2BAC740D22E1F7D2ED88&uin=0&fromtag=53","songname":"\u7ae5\u8bdd\u9547","albumname":"\u7ae5\u8bdd\u9547","singername":"\u8bb8\u5a1c","pic":"https:\/\/y.gtimg.cn\/music\/photo_new\/T002R300x300M000000fglnt1hPvpJ.jpg?max_age=2592000"} of type java.lang.String cannot be converted to JSONObject W/System.err: at org.json.JSON.typeMismatch(JSON.java:112) at org.json.JSONObject.<init>(JSONObject.java:163) at org.json.JSONObject.<init>(JSONObject.java:176)
java.util.ArrayList cannot be cast to byte[]
类型不能强制转换,但是我这个并没看出来哪里需要转换,请大家帮忙看一看哪里出问题了。 我在一个activity将bitmap转为byte[]类型,装入List里面,通过gson把这个list变为json类型,再传到另一个activity,解析json数据再转为List。 代码比较长,我就不全列出了。就用log来提供内容吧。 private List<byte[]> mBitmaps = new ArrayList<>(); ...... Log.i(TAG, "getView: "+mBitmaps.get(i)); Log.i(TAG, "getView: "+mBitmaps); Log.i(TAG, "getView: "+mBitmaps.getClass()); if (mBitmaps != null) { Glide.with(mContext).load(mBitmaps.get(i)).into(viewHolder.imageView); } 打印的内容就是 getview:[... , ...] getview:[[... , ...] getView: class java.util.ArrayList 报错就是在Glide那一行, ...就省略了就是-128到128一堆数字。 还需要什么信息就说一下。
关于bmob的listview问题,求大神看看我哪里错了!
主MainActivity代码 ``` import java.util.List; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; import android.widget.Toast; import cn.bmob.v3.Bmob; import cn.bmob.v3.BmobQuery; import cn.bmob.v3.listener.FindListener; public class MainActivity extends Activity { private ListView mlistView; private MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化 Bmob SDK // 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application ID Bmob.initialize(this, "Application ID"); setTitle("查询信息"); mlistView = (ListView)findViewById(R.layout.activity_main); openlistview(); } public void openlistview(){ BmobQuery<ZhinengBean> query = new BmobQuery<ZhinengBean>(); query.order("-createdAt"); query.findObjects(this, new FindListener<ZhinengBean>() { @Override public void onSuccess(List<ZhinengBean> mList) { // TODO Auto-generated method stub if (mList == null || mList.size() == 0) { myAdapter.onDateChange(mList); Toast.makeText(MainActivity.this,"适配器失败", Toast.LENGTH_LONG).show(); } //这里应该是要解析,我不太懂怎么解析 //Bmob服务器的JavaBean是有数据的。 myAdapter = new MyAdapter(MainActivity.this, mList); mlistView = (ListView)findViewById(R.layout.activity_main); mlistView.setAdapter(myAdapter); Toast.makeText(MainActivity.this,"查询成功"+mList, Toast.LENGTH_LONG).show(); } @Override public void onError(int code, String zhinengBeans) { // TODO Auto-generated method stub Toast.makeText(MainActivity.this,"查询失败。", Toast.LENGTH_LONG).show(); } }); } } ``` 主布局代码listview activity_main ```<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" > <ListView android:id="@+id/lv_main" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> ``` 内容代码 item_layout ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="4dp" android:orientation="horizontal" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" android:paddingLeft="4dp"> <TextView android:id="@+id/tv_tittle" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLines="1" android:textSize="15sp" android:text="Tittle"/> //maxLines最多多少行 <TextView android:id="@+id/tv_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:maxLines="3" android:textSize="10sp" android:text="Content"/> </LinearLayout> </LinearLayout> ``` BaseAdapter代码 //我觉得应该没啥问题这里 ``` import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; public class MyAdapter extends BaseAdapter { //通过构造方法,将数据源和适配器绑定在一起》》》》 private Context Context; private List<ZhinengBean> mList; private LayoutInflater mInflater; public MyAdapter ( Context context, List<ZhinengBean> list){ this.Context = context; this.mList = list; mInflater = LayoutInflater.from(context); } //》》》》》》》 public void onDateChange(List<ZhinengBean> mList) { this.mList = mList; this.notifyDataSetChanged(); } //表示显示多少条数据 @Override public int getCount() { // TODO 自动生成的方法存根 return mList.size(); } @Override public Object getItem(int position) { // TODO 自动生成的方法存根 return mList.get(position); } @Override public long getItemId(int position) { // TODO 自动生成的方法存根 return position; } @Override public View getView(int position, View converView, ViewGroup parent) { // TODO 自动生成的方法存根 ViewHolder viewHolder = null; if(converView == null){ viewHolder = new ViewHolder(); converView = mInflater.inflate(R.layout.iten_layout,null); viewHolder.znTittle = (TextView) converView.findViewById(R.id.tv_tittle); viewHolder.znTittle2 = (TextView) converView.findViewById(R.id.tv_content); converView.setTag(viewHolder); }else{ viewHolder = (ViewHolder) converView.getTag(); } ZhinengBean td =mList.get(position); //新方法 viewHolder.znTittle.setText(td.getZntittle()); viewHolder.znTittle2.setText(td.getZntittle2()); return converView; } class ViewHolder { public TextView znTittle; public TextView znTittle2; ```
求问服务器端如何响应android端发送的信息(php Study)
新手小白最近在做一个课程项目: 1.手机端(基于android)发送数据到云服务器端 2.服务器端记录数据至数据库 3.手机端再访问服务器端网页,可以在网页上看到表格,表格里是之前发送的数据 我知道在大神们眼里这项目很简单甚至很蠢 但刚入门需要一些帮助 买了腾讯云学生机 用了phpStudy软件架构为apache+mysql+php 参考了《第一行代码》后,android端已经可以访问服务器的HTML网页,然后也可以获取服务器端的index数据,那么问题来了: 1.我想知道服务器端要对android端的访问进行回应,再将数据丢至数据库的操作如何完成,需要在哪个部分进行哪些操作?大致讲一下思路就行~ 2.看《第一行代码》上是基于apache自己搭建了服务器,新建了xml和json格式数据,再用对应的方式进行访问解析。但我直接访问云服务器得到的数据是来自于HTML里面的 没看到xml也没有json,不知道是不是我理解有问题。 可能提问得并不专业,希望能够看懂给点建议,不胜感激!
android listview获取七牛云的文件信息列表
listview怎么从七牛云获取类似json的文件信息列表。看了一下SDK说是用域名就可以容易的解析,但是这样的功能显然是在不知道域名的情况下通过相关字段搜索出来的。 因为是小白。挺痛苦的。求大神帮助
想把别人做好的解析视频的网站加载到app上,用腾讯X5webview,可是却不能加载视频,有时候控制
新手没有币种,如果有的话我一定会多给的,大家帮帮忙谢谢 大神帮忙看一下,想把别人做好的解析视频的wangzhan加载到app上,用腾讯X5webview,可是却不能加载视频,有时候控制台会报:请不要解析 代码如下(为什么单纯用游览器就能播放视频,而放到app上就不能使用了) MainActivity.java(更新版本代码和腾讯X5代码我就不放了) public class MainActivity extends AppCompatActivity { private com.tencent.smtt.sdk.WebView webView; private String url = "http://v.woaik.com/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = new com.tencent.smtt.sdk.WebView(this); int width = webView.getView().getWidth(); //腾讯X5 initX5(); getWindow().setFormat(PixelFormat.TRANSLUCENT);//(这个对宿主没什么影响,建议声明) getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); initView(); loadUrl(url);//访问网页 update();//安卓版本更新 } private void initView() { webView = (com.tencent.smtt.sdk.WebView) findViewById(R.id.forum_context); } private void initX5() { Intent intent = new Intent(this, AdvanceLoadX5Service.class); startService(intent); } private void update() { Map<String, String> params = new HashMap<String, String>(); params.put("key1", "value1"); params.put("key2", "value2"); params.put("key3", "value3"); params.put("key4", "value4"); new UpdateAppManager .Builder() //当前Activity .setActivity(this) //实现httpManager接口的对象 .setHttpManager(new UpdateAppHttpUtil()) //设置请求方式 默认get, .setPost(false) //更新地址 .setUpdateUrl("http://122.14.199.210/json.txt") //添加自定义参数 .setParams(params) //设置点击升级后,消失对话框 .hideDialogOnDownloading(true) //设置头部 .setTopPic(R.mipmap.top_8) //设置主题色 // .setThemeColor(0xff034ea0) .build() //检测是否有新版本 .checkNewApp(new UpdateCallback() { /** * 解析json,自定义协议 * * @param json 服务器返回的json * @return UpdateAppBean */ @Override protected UpdateAppBean parseJson(String json) { UpdateAppBean updateAppBean = new UpdateAppBean(); try { JSONObject jsonObject = new JSONObject(json); updateAppBean //是否更新Yes,No .setUpdate(jsonObject.optString("update")) //新版本号 .setNewVersion(jsonObject.optString("new_version")) //下载地址 .setApkFileUrl(jsonObject.optString("apk_file_url")) //大小 .setTargetSize(jsonObject.optString("target_size")) //更新内容 测试更新内容过多 .setUpdateLog("1,添加删除信用卡接口\n2,添加vip认证\n3,区分自定义消费,一个小时不限制。\n4,添加放弃任务接口,小时内不生成。\n5,消费任务手动生成。" + "\n1,添加删除信用卡接口\n2,添加vip认证\n3,区分自定义消费,一个小时不限制。\n4,添加放弃任务接口,小时内不生成。\n5,消费任务手动生成。" + "\n1,添加删除信用卡接口\n2,添加vip认证\n3,区分自定义消费,一个小时不限制。\n4,添加放弃任务接口,小时内不生成。\n5,消费任务手动生成。" + "\n1,添加删除信用卡接口\n2,添加vip认证\n3,区分自定义消费,一个小时不限制。\n4,添加放弃任务接口,小时内不生成。\n5,消费任务手动生成。" + "\n1,添加删除信用卡接口\n2,添加vip认证\n3,区分自定义消费,一个小时不限制。\n4,添加放弃任务接口,小时内不生成。\n5,消费任务手动生成。" + "\n1,添加删除信用卡接口\n2,添加vip认证\n3,区分自定义消费,一个小时不限制。\n4,添加放弃任务接口,小时内不生成。\n5,消费任务手动生成。") //是否强制更新 .setConstraint(false); //设置md5 // .setNewMd5(jsonObject.optString("new_md5ddfdfdf")); } catch (JSONException e) { e.printStackTrace(); } return updateAppBean; } /** * 有新版本 * * @param updateApp 新版本信息 * @param updateAppManager app更新管理器 */ @Override public void hasNewApp(UpdateAppBean updateApp, UpdateAppManager updateAppManager) { if (updateApp.isConstraint()) { } else { } updateAppManager.showDialog(); } /** * 网络请求之前 */ @Override public void onBefore() { CProgressDialogUtils.showProgressDialog(MainActivity.this); } /** * 网路请求之后 */ @Override public void onAfter() { CProgressDialogUtils.cancelProgressDialog(MainActivity.this); } /** * 没有新版本 */ @Override public void noNewApp() { Toast.makeText(MainActivity.this, "没有新版本", Toast.LENGTH_SHORT).show(); } }); } @Override protected void onStart() { super.onStart(); } private void loadUrl(String url) { WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.loadUrl(url); webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onReceivedError(WebView var1, int var2, String var3, String var4) { Log.i("打印日志","网页加载失败"); } }); //进度条 webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { Log.i("打印日志","加载完成"); } } }); } @Override protected void onDestroy() { super.onDestroy(); if (webView != null) webView.destroy(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (webView != null && webView.canGoBack()) { webView.goBack(); return true; } return super.onKeyDown(keyCode, event); } return super.onKeyDown(keyCode, event); } }
关于mock.js的小白问题
因为还没怎么接触过mockjs所以不太了解。我现在需要采用mockjs造新增/编辑接口测试数据,运用的工具是webstorm。 看了官方文档还是不明白我应该如何解析接口给的json。 接口例子: ![图片说明](https://img-ask.csdn.net/upload/201905/09/1557372701_939563.png)
使用微信支付的时候,一定要商户服务器先调用【统一下单API】生成预付单吗?
看了微信的demo和文档,它们的demo里的调用支付方法 都没有商品的名称 描述 价格这些信息, 我们公司android那边说不需要先调下单api,他们都直接调用支付宝支付, 不知道该怎么实现 ``` + (NSString *)jumpToBizPay { //============================================================ // V3&V4支付流程实现 // 注意:参数配置请查看服务器端Demo // 更新时间:2015年11月20日 //============================================================ NSString *urlString = @"http://wxpay.weixin.qq.com/pub_v2/app/app_pay.php?plat=ios"; //解析服务端返回json数据 NSError *error; //加载一个NSURL对象 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]; //将请求的url数据放到NSData对象中 NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; if ( response != nil) { NSMutableDictionary *dict = NULL; //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中 dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error]; NSLog(@"url:%@",urlString); if(dict != nil){ NSMutableString *retcode = [dict objectForKey:@"retcode"]; if (retcode.intValue == 0){ NSMutableString *stamp = [dict objectForKey:@"timestamp"]; //调起微信支付 PayReq* req = [[[PayReq alloc] init]autorelease]; req.partnerId = [dict objectForKey:@"partnerid"]; req.prepayId = [dict objectForKey:@"prepayid"]; req.nonceStr = [dict objectForKey:@"noncestr"]; req.timeStamp = stamp.intValue; req.package = [dict objectForKey:@"package"]; req.sign = [dict objectForKey:@"sign"]; [WXApi sendReq:req]; //日志输出 NSLog(@"appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",[dict objectForKey:@"appid"],req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign ); return @""; }else{ return [dict objectForKey:@"retmsg"]; } }else{ return @"服务器返回错误,未获取到json对象"; } }else{ return @"服务器返回错误"; } } ```
厉害的人看一下,我这个代码对不对
post请求,然后解析服务器返回的json请求 那里不对,大神指点一下。谢谢 ``` public void onClick(View view) { String username = usernameEdit.getText().toString(); String password = passwordEdit.getText().toString(); OkHttpClient client = new OkHttpClient(); RequestBody requestBody = new FormBody.Builder() .add("username", username) .add("password", password) .build(); Request request = new Request.Builder() .url("http://test.ourwechat.com/test/auth.php") .post(requestBody) .build(); JSONObject jsonObject = null; try { jsonObject = new JSONObject(); String code = jsonObject.getString("code"); } catch (JSONException e) { e.printStackTrace(); } if (code == -1){ Toast.makeText(Login.this,"登录失败",Toast.LENGTH_SHORT).show(); } ```
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
小白学 Python 爬虫(25):爬取股票信息
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
世界上最牛的网络设备,价格低廉,其貌不扬......
夜深人静,电视和电脑都已经关机休息,但是我还在默默工作,我安静地趴在你家中的某个地方,7*24小时不眠不休,任劳任怨,目的只有一个,能让你舒服地躺在床上,畅快地刷手机!没错,这就是我,...
《面试宝典》2019年springmvc面试高频题(java)
前言 2019即将过去,伴随我们即将迎来的又是新的一年,过完春节,马上又要迎来新的金三银四面试季。那么,作为程序猿的你,是否真的有所准备的呢,亦或是安于本职工作,继续做好手头上的事情。 当然,不论选择如何,假如你真的准备在之后的金三银四跳槽的话,那么作为一个Java工程师,就不可不看了。如何在几个月的时间里,快速的为即将到来的面试进行充分的准备呢? 1、什么是Spring MVC ?简单...
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试一个ArrayList我都能跟面试官扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
2020年1月中国编程语言排行榜,python是2019增长最快编程语言
编程语言比例 排名 编程语言 最低工资 工资中位数 最低工资 最高工资 人头 人头百分比 1 rust 20713 17500 5042 46250 480 0.14% 2 typescript 18503 22500 6000 30000 1821 0.52% 3 lua 18150 17500 5250 35000 2956 0.84% 4 go 17989 16...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高开发效率。对于我们开发人员很有帮助。这篇博客介绍了开发中使用的插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
立即提问