java中两个数据类型float和double的问题

如题。关于数据类型有几个地方不太明白,请高手讲解下
像float是32位,我看有些资料上讲它取值范围是-2^23~2^23-1
但是有的地方讲float最大值为3.4028235E38,最小值为1.4E-45,明显后者在取值范围之外
另外float支持负数吗,我上网看都说支持,但是,我写float x = -1.984;就报错,换成,最小值
1.4E-45恰好是个正数
double x = -1.984;就没事
float小数点前后有效数字的位数是固定的吗,还是说根据情况进行调整,只要总数不超出有效数字范围就行了

5个回答

float:
1bit(符号位) 8bits(指数位) 23bits(尾数位)
double:
1bit(符号位) 11bits(指数位) 52bits(尾数位)

8bits(指数位)意味着按照2进制表示,浮点数最多可以跨2^8个数量级,也就是256个数量级,按照2^10大约是10^3来算,表示的最大数和最小数可以差大约76.7个0
而38+38=76,基本是吻合的。

float小数点前后有效数字的位数是固定的吗,当然不是,要不还叫什么“浮点”,那就成定点了。

float类型定义式 默认要加f的 例如 float f = -1.984f; 才行

float最大值为3.4028235E38,最小值为1.4E-45 这绝对不可能。

loat x = -1.984;应该写float x = (float)-1.984;或者float x = -1.984f;

补充下,float的表示范围是-3.40E38 ~ +3.40E38,绝对值的表示范围是1.4E-45~3.40E38,有效精度是7~8位。
换言之,3.40E38-3.40E29这个表达式如果用float运算,结果还是3.40E38,因为两个数字差了9个数量级。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java float和double的相等问题
double k=2.658; float n=2.685F; System.out.println(k==n);//程序 两个数值相等为什么是false啊
关于java泛型
鉴于描述原来的问题有点麻烦,我举个简单的例子 假如我现在要计算两个数字A+B+A*B+A/B(这两个数字类型相同,但其类型可以是int,float,long,double等,或者要求它们是Integer,Float,Long,Double也可以) 可以将计算方法封装到一个独立的类 为了便于维护,我想只写一个运算逻辑,也就是A+B+A*B+A/B 有阵子没碰java了,不知道这问题是我把原来的知识忘了,还是java那鸡肋的泛型本身的局限
java重载寻找最精确方法的疑问
我在看java教课书时关于重载寻找最精确方法时,有段话,在网上查询了很久好像没有相关的解释![图片说明](https://img-ask.csdn.net/upload/201907/17/1563357697_900296.jpg)![图片说明](https://img-ask.csdn.net/upload/201907/17/1563357727_465320.jpg) 然后后面有个例子 ![图片说明](https://img-ask.csdn.net/upload/201907/17/1563357773_836077.jpg) 在这个例子里面 test((float)1,(int)2);和test((int)1,(float2));为什么会编译错误,int不是会隐式转换为double吗 另外test((int)1,(int)2);和test((float)1,(float)2);和test((double)1,(double)2);再寻找最精准方法时,根据参数的隐式转型时对两个重载的test方法对应,所以系统不知道要对应哪个才报错,我这样理解对不对?
日文系统下Java程序中的中文注释报错
我的系统是日文的, 只是一个最简单程序,因为程序中使用中文的注释,所以编译的时候报错,请指教怎样才能不报错? 参看: public class FloatTest { public static void main(String[] args) { float af = 5.2345556f; // 下面将看到af的值已经发生了改变 System.out.println(af); double a = 0.0; double c = Double.NEGATIVE_INFINITY; float d = Float.NEGATIVE_INFINITY; // 看到float和double的负无穷大是相等的。 System.out.println(c == d); // 0.0除以0.0将出现非数 System.out.println(a / a); // 两个非数之间是不相等的 System.out.println(a / a == Float.NaN); // 所有正无穷大都是相等的 System.out.println(6.0 / 0 == 555.0/0); // 负数除以0.0得到负无穷大 System.out.println(-8 / a); // 下面代码将抛出除以0的异常 // System.out.println(0 / 0); } } 之后的编译结果是这样的: D:\Java\03\3.4>javac FloatTest.java FloatTest.java:18: エラー: この文字は、エンコーディングMS932にマップできません // マツテ貎ォソエオスafオトヨオメムセュキ「ノ愠ヒクトア? ^ FloatTest.java:25: エラー: この文字は、エンコーディングMS932にマップできません // 0.0ウ?ヤ0.0スォウヨキヌハ? ^ FloatTest.java:25: エラー: この文字は、エンコーディングMS932にマップできません // 0.0ウ?ヤ0.0スォウヨキヌハ? ^ FloatTest.java:27: エラー: この文字は、エンコーディングMS932にマップできません // チスクヌハ?ョシ萍ヌイサマ犒ネオト ^ FloatTest.java:29: エラー: この文字は、エンコーディングMS932にマップできません // ヒミユ?゙ヌ鋗シハヌマ犒ネオト ^ FloatTest.java:31: エラー: この文字は、エンコーディングMS932にマップできません // クコハ??ヤ0.0オテオスクコボヌ鋗? ^ FloatTest.java:31: エラー: この文字は、エンコーディングMS932にマップできません // クコハ??ヤ0.0オテオスクコボヌ鋗? ^ FloatTest.java:31: エラー: この文字は、エンコーディングMS932にマップできません // クコハ??ヤ0.0オテオスクコボヌ鋗? ^ FloatTest.java:33: エラー: この文字は、エンコーディングMS932にマップできません // マツテ豢惲?ォナラウ?ヤ0オトメ?」 ^ FloatTest.java:33: エラー: この文字は、エンコーディングMS932にマップできません // マツテ豢惲?ォナラウ?ヤ0オトメ?」 ^ FloatTest.java:33: エラー: この文字は、エンコーディングMS932にマップできません // マツテ豢惲?ォナラウ?ヤ0オトメ?」 ^ エラー11個 enter code here
斐波那契堆JAVA实现的问题
最近在做用斐波那契堆改进Prim算法的作业。但是Java代码调试了两个周还是有问题,只能正确输出前3项。 还有几天就要提交作业了,在次跪求大神们帮忙瞧瞧代码。 代码如下: public class FibonacciNode { FibonacciNode child, left, right, parent; int vertex; float element; int degree; Boolean mark; /** Constructor **/ public FibonacciNode(int vertex, float element) { this.right=this; this.left=this; this.parent=null; this.child=null; this.vertex=vertex; this.element=element; this.degree=0; this.mark=false; } } public class FibonacciHeap { FibonacciNode root; int count; public FibonacciHeap(){ root=null; count=0; } //Return the number of nodes of the current heap public int size(){ return count; } //Judge if the heap is empty public boolean isEmpty(){ return root==null; } //Clear the whole heap public void clear(){ root=null; count=0; } //Insert a node to the heap. public void insert(int vertex, Float element){ FibonacciNode node=new FibonacciNode(vertex, element); if(root==null) root=node; else{ addNode(node, root); if(root.element>node.element){ root=node; } } count++; } //Add b to the tail of a //Notify that a and b are both the heads of a double-linked list private void catList(FibonacciNode a, FibonacciNode b){ FibonacciNode tmp= a.right; a.right =b.right; b.right.left= a; b.right= tmp; tmp.left= b; } //Get the minimum node of the heap and remove it from the heap public FibonacciNode extractMin(){ if(root==null){ return null; } if(root.child!=null){ FibonacciNode m = root; FibonacciNode start=root.child; for(int i=0; i<m.degree; i++){ if(start!=null){ start.parent=null; addNode(start, root); start=start.right; } } } //remove root from the root list of heap FibonacciNode min=root; min.left.right=min.right; min.right.left=min.left; //if min.right==min, then the root of the heap has no child if(min.right==min){ this.root=null; } else{ root=min.right; consolidate(); } //decrease the number of the nodes count--; return min; } /* // 将min每一个儿子(儿子和儿子的兄弟)都添加到"斐波那契堆的根链表"中 while (m.child != null){ FibonacciNode child=m.child; removeNode(child); if(child.right==child) m.child=null; else m.child=child.right; addNode(child, min); child.parent=null; } */ /* if(min.child!=null){ //set all the min's child's parent as null System.out.println("2:22222"); FibonacciNode startChild=min.child; startChild.parent=null; for(FibonacciNode x=startChild.right; x!=startChild; x=x.right){ x.parent=null; System.out.println("3:22222"); } //merge the children to the root list catList(root, startChild); } */ //unify two node if they have the same degree private void consolidate() { FibonacciNode[] cons=new FibonacciNode[this.count]; for(int i=0; i<this.count; i++) cons[i] = null; while (root!=null) { FibonacciNode x =root; if(x==x.right) root=null; else{ removeNode(x); root=x.right; } int d=x.degree; while(cons[d]!=null) { FibonacciNode y=cons[d]; if (x.element>y.element) { FibonacciNode tmp=x; x=y; y=tmp; } link(y, x); cons[d]=null; d++; } cons[d] = x; } root = null; for(int i=0; i<cons.length; i++){ if(cons[i] != null) { if(root == null) root = cons[i]; else{ addNode(cons[i], root); if ((cons[i]).element < root.element) root = cons[i]; } } } } //remove node1 from the root list and make it as node2's child private void link(FibonacciNode node1, FibonacciNode node2) { // remove node1 from the root list node1.left.right = node1.right; node1.right.left = node1.left; // set node as root's child if (node2.child == null) node2.child = node1; else{ node1.right=node2.child.right; node2.child.right=node1; node1.left=node2.child; node1.right.left=node1; } node1.parent = node2; node2.degree++; node1.mark = false; } //add node to the list rooted at root private void addNode(FibonacciNode node, FibonacciNode root) { node.left=root; node.right=root.right; root.right=node; node.right.left=node; } public void decreaseKey(FibonacciNode node, int key) { if (key > node.element) { System.out.println("decrease failed: the new key is no smaller than current key"); return; } if (root==null||node==null) return; node.element=key; FibonacciNode parent = node.parent; //if parent is null or node's element is no smaller than it's parent's, nothing is needed to be done if (parent!=null&&(node.element<parent.element)) { //remove node and add it to the root list cut(node, parent); cascadingCut(parent); } // update the root node if (node.element<root.element) root=node; } private void removeNode(FibonacciNode node) { node.left.right = node.right; node.right.left = node.left; } private void renewDegree(FibonacciNode parent){ parent.degree -= 1; if(parent. parent != null) renewDegree(parent.parent); } //remove node from it's parent and add it to the root list private void cut(FibonacciNode node, FibonacciNode parent) { removeNode(node); renewDegree(parent); //node has no sibling if (node==node.right) parent.child=null; else parent.child=node.right; node.parent=null; node.left=node.right=node; node.mark=false; //add to the root list of heap addNode(node, root); } //recurse cut the parent' parent, until reach the root list private void cascadingCut(FibonacciNode node) { FibonacciNode parent = node.parent; if (parent!=null) { if(node.mark==false) node.mark=true; else{ cut(node, parent); cascadingCut(parent); } } } //Add heap other to the current heap public void union(FibonacciHeap other) { if (this.root==null) //this is empty, just return the othe this.root=other.root; else if((other.root)!=null) {// both this and other are not empty catList(this.root, other.root); if(this.root.element>other.root.element) this.root=other.root; } this.count=this.count+other.count; other=null; return; } } 测试程序: public class FibonacciHeapTest { public static void main(String[] args){ FibonacciHeap heap=new FibonacciHeap(); for(int i=10; i>0; i--){ heap.insert(9-i, (float)i); } for(int i=0; i<10; i++){ System.out.println(heap.extractMin().element); } } } 运行结果: 1.0 2.0 3.0 4.0 Exception in thread "main" java.lang.NullPointerException at MST.FibonacciHeapTest.main(FibonacciHeapTest.java:10)
分离数字的时候得不到正确结果
分离两个数字的时候,我要的结果是.90,但是得到的是 1.0 或者 0.0 int number1 = 6517253; int number2 = 7195629; double number3 = number1 / number2; //本来应该是0.9057239,但返回0.0,希望实现0.90 double number4 = number2 / number1; //返回了1.0 本来应该是1.1040893 除此之外,如果把double改为float也是一样。
Java调用斑马GK888T打印条码,无法打印全部内容,求大神看下~
我想要打印下面这张图 ![图片说明](https://img-ask.csdn.net/upload/201510/16/1444959962_194001.jpg) 但是打印机只打印红色区域内的图片 ![图片说明](https://img-ask.csdn.net/upload/201510/16/1444959968_729962.jpg) 代码如下:这是我在网上下载的 他设置的是A4纸,我的打印纸是打印条码的纸没有那么大,我调了下参数但是不好使,求大神帮助~ ``` public class CopyOfPrintTest implements Printable { /** * @param Graphic指明打印的图形环境 * @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点) * @param pageIndex指明页号 **/ public int print(Graphics gra, PageFormat pf, int pageIndex) throws PrinterException { Component c = null; // 转换成Graphics2D Graphics2D g2 = (Graphics2D) gra; // 打印起点坐标 double x = pf.getImageableX(); double y = pf.getImageableY(); System.out.println(x); System.out.println(y); switch (pageIndex) { case 0: float[] dash1 = { 2.0f }; // 设置打印线的属性。 // 1.线宽 2、3、不知道,4、空白的宽度,5、虚线的宽度,6、偏移量 g2.setStroke(new BasicStroke(0.5f, BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER, 2.0f, dash1, 0.0f)); Image src = Toolkit.getDefaultToolkit().getImage("D:\\lis\\tm_images\\2015-10-15\\1510150001.png"); g2.drawImage(src, (int) x, (int) y, c); int img_Height = src.getHeight(c); int img_width = src.getWidth(c); System.out.println("img_Height=" + img_Height + "img_width="+ img_width); return PAGE_EXISTS; default: return NO_SUCH_PAGE; } } public static void main(String[] args) throws PrinterException { // 通俗理解就是书、文档 Book book = new Book(); // 设置成竖打 PageFormat pf = new PageFormat(); pf.setOrientation(PageFormat.PORTRAIT); // 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。 Paper p = new Paper(); p.setSize(189, 80);// 纸张大小 //高不能超过80 否则会出现两页 // 设置paper可成像区域 成像区域多大paper就是多大 p.setImageableArea(0, 0, 189, 80);// A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72 pf.setPaper(p); // 把 PageFormat 和 Printable 添加到书中,组成一个页面 book.append(new CopyOfPrintTest(), pf); // 获取打印服务对象 PrinterJob job = PrinterJob.getPrinterJob(); // 设置打印类 job.setPageable(book); // 可以用printDialog显示打印对话框,在用户确认后打印;也可以直接打印 boolean flag = job.printDialog(); if (flag) { job.print(); } } } ```
android 百度地图 搜索跳转
一共有两个Activity ,第一个Activity显示地图,实现定位当前地址并输出在第一个页面的EditText里,第二个Activity是搜索页面,搜索框是EditText,ListView显示搜索结果,使用百度地图建议搜索功能。比如搜索一个万达广场,点击搜索结果后希望在第一个Activity的地图上显示当前定位地址和到万达广场的路线规划,就是起点和终点显示出来。 (这里需要起点自动获取,因为地图已经实现自动定位当前地址了,不要那种既要输入起点,又要输入终点,最后还得要点击一下确定,才会显示结果的那种无语的操作体验,整个软件是没有一个Bundle按钮的,只需要item) 现在的问题是点击第二个页面ListView里面的搜索结果万达广场,跳转到第一个页面之后没有任何反应。 谢谢各位大神哥哥姐姐~ 第一个java, package com.baidumap; import android.Manifest; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.util.Log; import android.view.View; import android.widget.EditText; 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.MapStatus; 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.UiSettings; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.search.core.SearchResult; import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener; import com.baidu.mapapi.search.poi.PoiDetailResult; import com.baidu.mapapi.search.poi.PoiIndoorResult; import com.baidu.mapapi.search.poi.PoiResult; import com.baidu.mapapi.search.poi.PoiSearch; public class MainActivity extends Activity { private MapView mMapView = null; private BaiduMap mBaidumap =null; private PoiSearch mPoiSearch = null; private EditText mTv = null; private LocationClient mLocClient; private MainActivity.MyLocationListener myListener = new MainActivity.MyLocationListener(); private int mCurrentDirection = 0; private Double lastX = 0.0; private MyLocationData locData; private float mCurrentAccracy; private double mCurrentLat = 0.0; private double mCurrentLon = 0.0; private String mCityName; boolean isFirstLoc = true; BitmapDescriptor mCurrentMarker; private SensorManager mSensorManager; private MyLocationConfiguration.LocationMode mCurrentMode; private MainActivity.DirectionSensorListener DirectionListener = new MainActivity.DirectionSensorListener(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.content_main); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取传感器管理服务 mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL; //初始化地图 mMapView = (MapView) findViewById(R.id.mapView); mTv = (EditText) findViewById(R.id.tiaozhuan); mTv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Bundle bundle = new Bundle(); bundle.putString("userName", "zhangsan"); bundle.putInt("userAge", 100); Intent intent = new Intent(MainActivity.this, Main2Activity.class); intent.putExtras(bundle); startActivityForResult(intent, 1);// } }); /*protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (requestCode){ case RESULT_OK: Bundle bundle=data.getExtras(); String str=bundle.getString("backData"); Toast.makeText(MainActivity.this, str,Toast.LENGTH_LONG).show(); break; default: break; }*/ mBaidumap = mMapView.getMap(); mMapView.showScaleControl(false); mMapView.showZoomControls(false); UiSettings settings = mBaidumap.getUiSettings(); settings.setOverlookingGesturesEnabled(false);//设置双指下拉时不启用3D地图 settings.setRotateGesturesEnabled(false);//设置地图不可旋转 //开启定位图层 mBaidumap.setMyLocationEnabled(true); initLocation(); //initPoiSearch(); mPoiSearch = PoiSearch.newInstance(); mPoiSearch.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() { @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { if (poiDetailResult == null || poiDetailResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { Toast.makeText(MainActivity.this, "未找到结果", Toast.LENGTH_LONG) .show(); return; } if (poiDetailResult.error == SearchResult.ERRORNO.NO_ERROR) { //搜索到POI mBaidumap.clear(); mBaidumap.addOverlay(new MarkerOptions() .position(poiDetailResult.location) .icon(BitmapDescriptorFactory.fromResource(R.drawable.alf)) .title(poiDetailResult.getAddress())); //讲该POI设置为地图中心 mBaidumap.setMapStatus(MapStatusUpdateFactory.newLatLng(poiDetailResult.location)); Toast.makeText(MainActivity.this, "搜索中...", Toast.LENGTH_LONG).show(); return; } } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) { } @Override public void onGetPoiResult(PoiResult poiResult) { } }); } private void initLocation() { mLocClient = new LocationClient(this); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);//打开GPS option.setCoorType("bd09ll");//设置坐标类型 option.setIsNeedAddress(true);//是否需要地址信息 option.setScanSpan(1000); LocationPermission(); mLocClient.setLocOption(option); } private void LocationPermission() { int checkPermission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION); if (checkPermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1); Log.d("未获得定位权限", "弹出提示"); return; } } public class DirectionSensorListener implements SensorEventListener { @Override public void onSensorChanged(SensorEvent event) { double x = event.values[SensorManager.DATA_X]; if (Math.abs(x - lastX) > 1.0) { mCurrentDirection = (int) x; //设置定位数据 locData = new MyLocationData.Builder() .accuracy(mCurrentAccracy)//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(mCurrentLat)//经度 .longitude(mCurrentLon)//纬度 .build(); mBaidumap.setMyLocationData(locData); } lastX = x; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } } public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation bdLocation) { //map view销毁后不在处理新接受的位置 if (bdLocation == null || mMapView == null) { return; } mCurrentLat = bdLocation.getLatitude(); mCurrentLon = bdLocation.getLongitude(); mCurrentAccracy = bdLocation.getRadius(); mCityName = bdLocation.getCity(); //设置定位数据 locData = new MyLocationData.Builder() .accuracy(bdLocation.getRadius())//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(bdLocation.getLatitude())//经度 .longitude(bdLocation.getLongitude())//纬度 .build(); mBaidumap.setMyLocationData(locData); //第一次定位时,将地图位置移动到当前位置 if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaidumap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); mCurrentMarker = null; mBaidumap .setMyLocationConfiguration(new MyLocationConfiguration( mCurrentMode, true, null)); } } } @Override protected void onStart() { //为系统的方向传感器注册监听器 mSensorManager.registerListener(DirectionListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) , SensorManager.SENSOR_DELAY_UI); //启动监听 mLocClient.start(); super.onStart(); } @Override protected void onPause() { mMapView.onPause(); super.onPause(); } @Override protected void onResume() { mMapView.onResume(); super.onResume(); } @Override protected void onStop() { //取消传感器监听 mSensorManager.unregisterListener(DirectionListener); super.onStop(); } @Override protected void onDestroy() { //退出时销毁定位 mLocClient.stop(); //关闭定位图层 mBaidumap.setMyLocationEnabled(false); mMapView.onDestroy(); //mMapView = null; // mPoiSearch.destroy(); //mSuggestionSearch.destroy(); super.onDestroy(); } } 第二个java, package com.baidumap; import android.Manifest; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.os.Bundle; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.text.Editable; import android.text.TextWatcher; import android.util.Log; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; 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.MapStatus; 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.MyLocationConfiguration.LocationMode; import com.baidu.mapapi.map.MyLocationData; import com.baidu.mapapi.map.UiSettings; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.search.core.CityInfo; import com.baidu.mapapi.search.core.SearchResult; import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener; import com.baidu.mapapi.search.poi.PoiDetailResult; import com.baidu.mapapi.search.poi.PoiDetailSearchOption; import com.baidu.mapapi.search.poi.PoiIndoorResult; import com.baidu.mapapi.search.poi.PoiResult; import com.baidu.mapapi.search.poi.PoiSearch; import com.baidu.mapapi.search.sug.OnGetSuggestionResultListener; import com.baidu.mapapi.search.sug.SuggestionResult; import com.baidu.mapapi.search.sug.SuggestionSearch; import com.baidu.mapapi.search.sug.SuggestionSearchOption; import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; public class Main2Activity extends Activity implements OnGetSuggestionResultListener { private EditText et_address; private Adapter_list_Address adapter_list_Address; private ListView myListView; private List<String> list = new ArrayList<>(); private List<String> lists = new ArrayList<>(); //地图相关 /** * 百度地图控件 */ MapView mMapView = null; /** * 百度地图实例 */ BaiduMap mBaidumap = null; //定位相关 /** * 定位客户端 */ LocationClient mLocClient; /** * 定位模式 */ private LocationMode mCurrentMode; /** * 定位图标 */ BitmapDescriptor mCurrentMarker; /** * 传感器管理器 */ private SensorManager mSensorManager; /** * 当前方向 */ private int mCurrentDirection = 0; /** * 当前经度 */ private double mCurrentLat = 0.0; /** * 当前纬度 */ private double mCurrentLon = 0.0; /** * 当前经度 */ private float mCurrentAccracy; /** * 是否首次定位 */ boolean isFirstLoc = true; /** * 定位数据 */ private MyLocationData locData; /** * 定位监听 */ private MyLocationListener myListener = new MyLocationListener(); /** * 方向监听 */ private DirectionSensorListener DirectionListener = new DirectionSensorListener(); /** * 上一次的方向 */ private Double lastX = 0.0; /** * 定位所在城市 */ private String mCityName; //poi搜索相关 /** * Poi检索实例 */ private PoiSearch mPoiSearch = null; private SuggestionSearch mSuggestionSearch = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main2); mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);//获取传感器管理服务 mCurrentMode = LocationMode.NORMAL; //初始化地图 mMapView = (MapView) findViewById(R.id.mapView2); mBaidumap = mMapView.getMap(); mMapView.showScaleControl(false); mMapView.showZoomControls(false); UiSettings settings = mBaidumap.getUiSettings(); settings.setOverlookingGesturesEnabled(false);//设置双指下拉时不启用3D地图 settings.setRotateGesturesEnabled(false);//设置地图不可旋转 //开启定位图层 mBaidumap.setMyLocationEnabled(true); initLocation(); initPoiSearch(); initData(); Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { ShowKeyboard(et_address); } }, 500); } private void initData() { et_address = (EditText) findViewById(R.id.et_address); myListView = (ListView) findViewById(R.id.lv_address); mPoiSearch = PoiSearch.newInstance(); mPoiSearch.setOnGetPoiSearchResultListener(new OnGetPoiSearchResultListener() { @Override public void onGetPoiResult(PoiResult poiResult) { if (poiResult == null || poiResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { Toast.makeText(Main2Activity.this, "未找到结果", Toast.LENGTH_LONG).show(); return; } if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) { } if (poiResult.error == SearchResult.ERRORNO.AMBIGUOUS_KEYWORD) { //当输入关键字在本市没有找到,但是在其他城市找到时,返回包含该关键字信息的城市列表 String strInfo = "在"; for (CityInfo cityInfo : poiResult.getSuggestCityList()) { strInfo += cityInfo.city; strInfo += ","; } strInfo += "找到结果"; Toast.makeText(Main2Activity.this, strInfo, Toast.LENGTH_LONG).show(); } } @Override public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) { if (poiDetailResult == null || poiDetailResult.error == SearchResult.ERRORNO.RESULT_NOT_FOUND) { Toast.makeText(Main2Activity.this, "未找到结果", Toast.LENGTH_LONG) .show(); return; } if (poiDetailResult.error == SearchResult.ERRORNO.NO_ERROR) { //搜索到POI mBaidumap.clear(); mBaidumap.addOverlay(new MarkerOptions() .position(poiDetailResult.location) .icon(BitmapDescriptorFactory.fromResource(R.drawable.alf)) .title(poiDetailResult.getAddress())); //讲该POI设置为地图中心 mBaidumap.setMapStatus(MapStatusUpdateFactory.newLatLng(poiDetailResult.location)); Toast.makeText(Main2Activity.this, "搜索中...", Toast.LENGTH_LONG).show(); return; } } @Override public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) { } }); //初始化建议搜索模块,注册建议搜索事件监听 mSuggestionSearch = SuggestionSearch.newInstance(); mSuggestionSearch.setOnGetSuggestionResultListener(this); et_address.addTextChangedListener(new TextWatcher() { @Override public void afterTextChanged(Editable arg0) { if (adapter_list_Address != null) { adapter_list_Address.notifyDataSetChanged(); } mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(et_address.getText().toString()).city("北京")); } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { if (adapter_list_Address != null) { adapter_list_Address.notifyDataSetChanged(); } mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(et_address.getText().toString()).city("北京")); } @Override public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { if (cs.length() < 0) { return; } /** * 使用建议搜索服务获取建议列表,结果在onSuggestionResult()中更新 */ if (adapter_list_Address != null) { adapter_list_Address.notifyDataSetChanged(); } mSuggestionSearch .requestSuggestion((new SuggestionSearchOption()) .keyword(et_address.getText().toString()).city("北京")); } }); } @Override public void onGetSuggestionResult(final SuggestionResult msg) { // TODO Auto-generated method stub if (msg == null || msg.getAllSuggestions() == null) { Toast.makeText(Main2Activity.this, "未检索到当前地址", Toast.LENGTH_SHORT).show(); return; } if (list != null) { list.clear(); } if (lists != null) { lists.clear(); } for (SuggestionResult.SuggestionInfo info : msg.getAllSuggestions()) { Log.e("info.ccity", "info.city" + info.city + "info.district" + info.district + "info.key" + info.key); list.add(info.key); lists.add(info.city + info.district + info.key); adapter_list_Address = new Adapter_list_Address(Main2Activity.this, list, lists); myListView.setAdapter(adapter_list_Address); myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { SuggestionResult.SuggestionInfo info = msg.getAllSuggestions().get(position); mPoiSearch.searchPoiDetail(new PoiDetailSearchOption().poiUid(info.uid)); Intent intentAddress = new Intent(); intentAddress.putExtra("backData",et_address.getText().toString()); setResult(RESULT_OK,intentAddress); finish(); } }); adapter_list_Address.notifyDataSetChanged(); } } public static void ShowKeyboard(View v) { InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(v, InputMethodManager.SHOW_FORCED); } public static void HideKeyboard(View v) { InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } } /** * 初始化定位相关 */ private void initLocation() { mLocClient = new LocationClient(this); mLocClient.registerLocationListener(myListener); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true);//打开GPS option.setCoorType("bd09ll");//设置坐标类型 option.setIsNeedAddress(true);//是否需要地址信息 option.setScanSpan(1000); LocationPermission(); mLocClient.setLocOption(option); } /** * poi搜索相关 */ private void initPoiSearch() { //初始化搜索模块,注册搜索事件监听 mPoiSearch = PoiSearch.newInstance(); //mPoiSearch.setOnGetPoiSearchResultListener(this); } /** * 获取GPS定位权限(Android6.0 以上需要动态获取权限) */ private void LocationPermission() { int checkPermission = ContextCompat.checkSelfPermission(Main2Activity.this, Manifest.permission.ACCESS_COARSE_LOCATION); if (checkPermission != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(Main2Activity.this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1); Log.d("未获得定位权限", "弹出提示"); return; } } /** * 方向监听 */ public class DirectionSensorListener implements SensorEventListener { @Override public void onSensorChanged(SensorEvent event) { double x = event.values[SensorManager.DATA_X]; if (Math.abs(x - lastX) > 1.0) { mCurrentDirection = (int) x; //设置定位数据 locData = new MyLocationData.Builder() .accuracy(mCurrentAccracy)//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(mCurrentLat)//经度 .longitude(mCurrentLon)//纬度 .build(); mBaidumap.setMyLocationData(locData); } lastX = x; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } } /** * 定位监听 */ public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation bdLocation) { //map view销毁后不在处理新接受的位置 if (bdLocation == null || mMapView == null) { return; } mCurrentLat = bdLocation.getLatitude(); mCurrentLon = bdLocation.getLongitude(); mCurrentAccracy = bdLocation.getRadius(); mCityName = bdLocation.getCity(); //设置定位数据 locData = new MyLocationData.Builder() .accuracy(bdLocation.getRadius())//精度 .direction(mCurrentDirection) //此处设置开发者获取到的方向信息,顺时针0-360 .latitude(bdLocation.getLatitude())//经度 .longitude(bdLocation.getLongitude())//纬度 .build(); mBaidumap.setMyLocationData(locData); //第一次定位时,将地图位置移动到当前位置 if (isFirstLoc) { isFirstLoc = false; LatLng ll = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude()); MapStatus.Builder builder = new MapStatus.Builder(); builder.target(ll).zoom(18.0f); mBaidumap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build())); mCurrentMarker = null; mBaidumap .setMyLocationConfiguration(new MyLocationConfiguration( mCurrentMode, true, null)); } } } @Override protected void onStart() { //为系统的方向传感器注册监听器 mSensorManager.registerListener(DirectionListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION) , SensorManager.SENSOR_DELAY_UI); //启动监听 mLocClient.start(); super.onStart(); } @Override protected void onPause() { mMapView.onPause(); super.onPause(); } @Override protected void onResume() { mMapView.onResume(); super.onResume(); } @Override protected void onStop() { //取消传感器监听 mSensorManager.unregisterListener(DirectionListener); super.onStop(); } @Override protected void onDestroy() { //退出时销毁定位 mLocClient.stop(); //关闭定位图层 mBaidumap.setMyLocationEnabled(false); mMapView.onDestroy(); mMapView = null; mPoiSearch.destroy(); mSuggestionSearch.destroy(); super.onDestroy(); } }
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
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万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业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:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的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岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
​两年前不知如何编写代码的我,现在是一名人工智能工程师
全文共3526字,预计学习时长11分钟 图源:Unsplash 经常有小伙伴私信给小芯,我没有编程基础,不会写代码,如何进入AI行业呢?还能赶上AI浪潮吗? 任何时候努力都不算晚。 下面,小芯就给大家讲一个朋友的真实故事,希望能给那些处于迷茫与徘徊中的小伙伴们一丝启发。(下文以第一人称叙述) 图源:Unsplash 正如Elsa所说,职业转换是...
强烈推荐10本程序员必读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
作为一个程序员,内存的这些硬核知识你必须懂!
我们之前讲过CPU,也说了CPU和内存的那点事儿,今天咱就再来说说有关内存,作为一个程序员,你必须要懂的哪那些硬核知识! 大白话聊一聊,很重要! 先来大白话的跟大家聊一聊,我们这里说的内存啊,其实就是说的我们电脑里面的内存条,所以嘞,内存就是内存条,数据要放在这上面才能被cpu读取从而做运算,还有硬盘,就是电脑中的C盘啥的,一个程序需要运行的话需要向内存申请一块独立的内存空间,这个程序本身是存放在...
非典逼出了淘宝和京东,新冠病毒能够逼出什么?
loonggg读完需要5分钟速读仅需 2 分钟大家好,我是你们的校长。我知道大家在家里都憋坏了,大家可能相对于封闭在家里“坐月子”,更希望能够早日上班。今天我带着大家换个思路来聊一个问题...
牛逼!一行代码居然能解决这么多曾经困扰我半天的算法题
春节假期这么长,干啥最好?当然是折腾一些算法题了,下面给大家讲几道一行代码就能解决的算法题,当然,我相信这些算法题你都做过,不过就算做过,也是可以看一看滴,毕竟,你当初大概率不是一行代码解决的。 学会了一行代码解决,以后遇到面试官问起的话,就可以装逼了。 一、2 的幂次方 问题描述:判断一个整数 n 是否为 2 的幂次方 对于这道题,常规操作是不断这把这个数除以 2,然后判断是否有余数,直到 ...
立即提问