做一道题,遇到一些疑问。public static int[] 函数 ;

取出整型数据中出现次数最多的元素,并按照升序排列返回。

要求实现方法:
public static int[] calcTimes(int[] num, int len);

【输入】 num:整型数组;

     len 输入的整数个数

【返回】 按照升序排列返回整型数组中出现次数最多的元素

【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出

示例
输入:num = {1,1,3,4,4,4,9,9,9,10} len = 10

返回:{4,9}

这是我用 c++编写的代码

#include
#include
using namespace std;
/*
在数组arr_num中查找 num,如果有,将对应的arr_count 加1,如果没有,在arr_num中添加,
设置arr_count 设置为1,并且相应的计数器加1;

*/
void find (int & num_,int *arr_num,int *arr_count,int &count)
{
for(int j =0 ;j <count ;j++)
if(arr_num[j] == num_)
arr_count[j]++;
arr_num[count] = num_;
arr_count[count]= 1;
count++;
}

int calcTimes (int num ,int len)
{
if (len == 0)
return 0;
int count = 0,dex =0 ;
//创建两个数字,一个用来存放数字,一个用来存放该数字出现的次数
int *arr_count = new int[len];
int *arr_num = new int [len];
for(dex =0 ;dex <len ;dex++)
find (num[dex],arr_num,arr_count,count);
int max = -1;
int numb ;
//arr_cout出现的最大值,该最大值出现的次数。
for(dex = 0 ;dex < count ;dex++)
if(max < arr_count[dex])
{
max = arr_count[dex];
numb =1;
}
else
if(max == arr_count[dex] )
numb++;
int *out_out = new int [numb];
int i = 0;

//将出现次数最多的赋值给另外一个数组。
for(dex = 0 ;dex < count ;dex++)
if (arr_count[dex] == max)
{
out_out[i] = arr_num[dex];
i++;
}

delete [] arr_count;
delete [] arr_num;
//对出现次数最多的数字进行排序 
sort(out_out,out_out+numb);
//自己检验下  
for(int jj =0 ;jj<numb;jj++)
    cout<<out_out[jj]<<"   "<<jj<<endl;
return out_out;

}

int main()
{
int num[] = {1,1,3,4,4,4,9,9,9,10}, len = 10;
int * out = calcTimes(num,len);
//这边该如何 sizeof (out) 是一个指针的长度,它不能用来判断数组的个数
int n = sizeof(out)/sizeof(int);
for(int i =0 ;i<n ;i++)
cout<<out[i]<<ends;
cout<<endl;

}

最后输出的时候,出现问题,不知道是最后sizeof(out)/size(int)出错,还是没有按照要求pbulic static int [] calcTimes()写,我对这个public static 不太了解 还是这本来就是java中的,不是C++的?

c++
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
函数名没问题,可以编译,在进入运行后,使用该功能会中断运行,说在IDCard.dll中无法找到SDT_OpenPort的入口点?
[DllImport("IDCard.dll", EntryPoint = "SDT_GetCOMBaud", CharSet = CharSet.Ansi)] public static extern int SDT_GetCOMBaud(int iPort, ref uint puiBaudRate); [DllImport("IDCard.dll", EntryPoint = "SDT_OpenPort", CharSet = CharSet.Ansi)] public static extern int SDT_OpenPort(int iPort); [DllImport("IDCard.dll", EntryPoint = "SDT_SetCOMBaud (int iPort, uint uiCurrBaud, uint uiSetBaud)SDT_OpenPort", CharSet = CharSet.Ansi)] public static extern int SDT_SetCOMBaud(int iPort); [DllImport("IDCard.dll", EntryPoint = "SDT_ClosePort", CharSet = CharSet.Ansi)] public static extern int SDT_ClosePort(int iPort); ``` private void button4_Click(object sender, EventArgs e) { IDCardData CardMsg = new IDCardData(); int nRet, nPort; string stmp; byte[] cPath = new byte[255]; byte[] pucIIN = new byte[4]; byte[] pucSN = new byte[8]; nPort = m_iPort; if (SDT_OpenPort(nPort) == 0) } ``` 哪位指点下迷津,究竟是哪里除了问题
if语句满足了但没有运行,在for循环中已经满足了循环条件,百度说上是循环里变量定义问题,然后我将循环统一改成了j,但还是有问题
if的条件已经满足了,然后我打印出一个6,表示有数组进入,但是却没有进入for 循环中,存储(3,() )的循环代码和存储(3,{} )的循环代码是一样的, 但却没有打印出花括号的,麻烦帮助一下xiao'bai package by.com; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class Realize { public static File f = new File("test.txt"); public static int syn = 0; // public static String bss = ""; public void judge() { Map<String, Integer> map = new HashMap<String, Integer>(); try { // 读文件 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f)); byte[] bs = new byte[bis.available()]; bis.read(bs); bss = new String(bs); System.out.println(bss); bis.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String str1 = bss.toString(); // System.out.println( str1 ); String[] str2 = str1.split(" "); // BUG:以空格分割可能将非保留字的字段分割在一起 // for (String string : str2) { // System.out.println( string ); // } // System.out.println( length ); int i; for (i = 0; i < str2.length; i++) { // 判断整常数 if ("1".equals(str2[i]) || "0".equals(str2[i]) || "2".equals(str2[i]) || "3".equals(str2[i]) || "4".equals(str2[i]) || "5".equals(str2[i]) || "6".equals(str2[i]) || "7".equals(str2[i]) || "8".equals(str2[i]) || "9".equals(str2[i])) { map.put(str2[i], 1); } // 判断保留字 if ("public".equals(str2[i]) || "class".equals(str2[i]) || "void".equals(str2[i]) || "for".equals(str2[i]) || "String".equals(str2[i]) || "private".equals(str2[i]) || "new".equals(str2[i])) { map.put(str2[i], 2); } // 判断分隔符 int j=0; if ("(".equals(str2[i])) { for (j = i + 1; j < str2[0].length(); j++) { boolean a=false; if (a==(")".equals(str2[j]))) { // System.out.println(" 括号丢失 "); break; } else { map.put("()", 3); } }j=0; } if ("{".equals(str2[i])) { System.out.println( i ); for ( j = i + 1; j < str2[0].length(); j++) { System.out.println( j ); boolean z=true; if (z== ("}".equals(str2[j]) ) ) { map.put("{}", 3); } else { break; } } } j=0; if ("[".equals(str2[i])) { for (j = i + 1; j < str2[0].length(); j++) { boolean a=true; if (a=="]".equals(str2[j])) { map.put("[]", 3); } else { break; } } } j=0; if (";".equals(str2[i])) { map.put(";", 3); } // 判断注释 if ("/".equals(str2[i])) { for (j = i + 1; j < str2[0].length(); j++) { if (!("/".equals(str2[j]))) { System.out.println(" 注释符错误"); } else { map.put("//", 3); break; } } } j=0; } Set<String> keys = map.keySet(); Iterator<String> iterator = keys.iterator(); // 迭代器 while (iterator.hasNext()) { String key = iterator.next(); int value = map.get(key); System.out.println("( " + value + "," + key + " )"); } } } 后面是main函数 package by.com; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class CFAnalyze { public static void main(String[] args) { Realize r=new Realize(); r.judge(); } }
在写一个AndroidBLE程序时,遇到了搜索不到设备的原因,怎么解决?
代码如下: 1.MainActivity部分 ``` public class MainActivity extends AppCompatActivity implements View.OnClickListener { private BluetoothAdapter mBluetoothAdapter; private RecyclerView mRecyclerView; private ScanResultAdapter mScanResultAdapter; private BluetoothLeScanner mBluetoothLeScanner; private Button mStartScaleButton,mStopScaleButton; private static final int REQUEST_CODE_ACCESS_COARSE_LOCATION = 1; //动态申请权限 private static final int SCAN_START = 1000; //开始搜索 private static final int SCAN_TIME = 10 * 1000; //扫描时间 private static final String TAG = "BLE"; private List<ScanResult> mList = new ArrayList<>(); private List<String> mListAddress = new ArrayList<>(); private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { switch (msg.what){ case SCAN_START: scanBluetooth(false); } return false; } }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); SetOnClickListener(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//如果 API level 是大于等于 23(Android 6.0) 时 //判断是否具有权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { //判断是否需要向用户解释为什么需要申请该权限 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) { Toast.makeText(MainActivity.this, "自Android 6.0开始需要打开位置权限才可以搜索到Ble设备", Toast.LENGTH_LONG).show(); } //请求权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_CODE_ACCESS_COARSE_LOCATION); } } } private void initView(){ /*找到控件*/ mStartScaleButton = findViewById(R.id.bt_1); mStopScaleButton = findViewById(R.id.bt_2); mRecyclerView = findViewById(R.id.rv_1); mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mScanResultAdapter = new ScanResultAdapter(this,mList); mRecyclerView.setAdapter(mScanResultAdapter); mScanResultAdapter.setOnItemClickListener(new ScanResultAdapter.OnItemClickListener() { @Override public void OnClick(int position) { scanBluetooth(false); ScanResult scanResult = mList.get(position); } }); /*获取本地蓝牙适配器*/ BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter(); mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, "设备不支持BLE", Toast.LENGTH_SHORT).show(); finish(); } /*打开蓝牙*/ if(mBluetoothAdapter == null ||!mBluetoothAdapter.isEnabled()){ Intent TrunOnBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(TrunOnBtIntent,0); } } /*控件点击事件*/ private void SetOnClickListener(){ mStartScaleButton.setOnClickListener(this); mStopScaleButton.setOnClickListener(this); } /*对应控件执行相关操作*/ @Override public void onClick(View v){ switch (v.getId()){ case R.id.bt_1: scanBluetooth(true); Toast.makeText(MainActivity.this,"扫描",Toast.LENGTH_LONG).show(); break; case R.id.bt_2: scanBluetooth(false); break; } } /*开始搜索设备及停止搜索设备函数*/ private void scanBluetooth(boolean isSan){ if(isSan==true){ mBluetoothLeScanner.startScan(mScanCallback); mHandler.sendEmptyMessageDelayed(SCAN_START,SCAN_TIME);//定时搜索蓝牙设备 }else { mBluetoothLeScanner.stopScan(mScanCallback); if(mHandler.hasMessages(SCAN_START)){ mHandler.removeMessages(SCAN_START); } } } /*搜索的回调函数*/ private ScanCallback mScanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { Log.i(TAG,"result:" + result + "callbackType:" + callbackType); /*通过扫描到的设备地址与新扫描的地址作比较,避免重复*/ if(!mListAddress.contains(result.getDevice().getAddress())){ mList.add(result); mListAddress.add(result.getDevice().getAddress()); } super.onScanResult(callbackType, result); } @Override /*扫描失败的处理*/ public void onScanFailed(int errorCode){ Log.e(TAG,"onScanFailed:" + errorCode); } }; } ``` 2. ScanResultAdapter部分 ``` public class ScanResultAdapter extends RecyclerView.Adapter<ScanResultAdapter.ViewHolder> { private Context mContext; private List<ScanResult> mList; private LayoutInflater inflater; private OnItemClickListener onItemClickListener; public ScanResultAdapter(Context mContext,List<ScanResult>mList){ this.mContext = mContext; this.mList = mList; inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ViewHolder(inflater.from(mContext).inflate(R.layout.layout_scanadapter_item,parent,false)); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, final int position) { ScanResult scanResult = mList.get(position); holder.tv_name.setText("设备名:"+scanResult.getDevice().getName()); holder.tv_address.setText("设备地址:"+scanResult.getDevice().getAddress()); holder.tv_rssi.setText("信号:"+scanResult.getRssi()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(null != onItemClickListener){ onItemClickListener.OnClick(position); } } }); } @Override public int getItemCount() { return mList.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ private TextView tv_name; private TextView tv_address; private TextView tv_rssi; public ViewHolder(@NonNull View itemView) { super(itemView); tv_name = itemView.findViewById(R.id.tv_name); tv_address = itemView.findViewById(R.id.tv_address); tv_rssi = itemView.findViewById(R.id.tv_rssi); } } public interface OnItemClickListener{ void OnClick(int position); } } ```
阅读测试程序,设计一个Book类。
阅读测试程序,设计一个Book类。 函数接口定义: class Book{} 该类有 四个私有属性 分别是 书籍名称、 价格、 作者、 出版年份,以及相应的set 与get方法;该类有一个含有四个参数的构造方法,这四个参数依次是书籍名称、 价格、 作者、 出版年份 。 裁判测试程序样例: ``` import java.util.*; public class Main { public static void main(String[] args) { List <Book>books=new ArrayList<Book>(); Scanner in=new Scanner(System.in); for(int i=0;i<5;i++) { String str=in.nextLine(); String []data=str.split(","); Book book=new Book(data[0],Integer.parseInt(data[1]),data[2],Integer.parseInt(data[3])); books.add(book); } System.out.println(totalprice(books)); } /*计算所有book的总价*/ public static int totalprice(List <Book>books) { int result=0; for(int i=0;i<books.size();i++){result+=books.get(i).getPrice();} return result; } } /* 请在这里填写答案 */ ``` 输入样例: ``` 三体,100,无名氏,1998 上下五千年,50,编辑部,2015 海底世界,50,无名氏2,2000 三体1,100,无名氏3,2017 三体3,100,无名氏4,1998 ``` 输出样例: ``` 400 ```
学习c++中遇到的问题,求大佬解答
``` #include <iostream> class Singleton{ private: static Singleton* s_Instance; public: static Singleton& Get(){ return *s_Instance; } void Hello() { std::cout << "Hello" << std::endl; } }; Singleton* Singleton::s_Instance = nullptr; int main(){ Singleton::Get().Hello(); std::cin.get(); } ``` 首先将Singleton类中的静态指针s_Instance设置为空指针,然后在main函数中直接调用Singleton::Get()用来这个指针指向内存的引用。**我的问题是:** 1. 已经被设置为空指针的内存单元应该是不存在的,那么也就无法获取到这个内存单元的引用,但是这段代码居然能够顺利被编译运行,求大佬讲解内部原理 2. 我在调试时发现这个运行从始至终s_Instance的值都是0,也就是空指针,这又是怎么回事呢。
用静态函数计算学生平均成绩:此代码中25行,我将对象作为函数形参,编译器说这行有问题,请问该怎么改,我想不修改写法把bug de掉,谢谢大家帮忙指点一下
``` #include<iostream> using namespace std; class Student { public: Student(int n,int s):number(n),score(s){} //构造函数初始化 static float average(); //声明静态函数 void data(); //声明成员函数 private: int number,score; static int Average,sum; //静态数据成员Average,sum }; int Student::Average=0; //静态数据成员初始化 int Student::sum=0; void Student::data() { cout<<"Please input data:"<<endl; cin>>number>>score; } float Student::average(Student &stu) { int i,j; cout<<"The number of students that you want to calculate is:"<<endl; cin>>j; for(i=0;i<j;j++) { sum=sum+stu[i].score; } Average=sum/i; return(Average); } int main() { Student stu[3]={Student(1,90),Student(2,91),Student(3,92)}; //对象数组初始化 int k; for(k=0;k<3;k++) { stu[k].data(); } average(); return 0; } ```
写Android BLE程序测试发现无法发现设备,请问怎么解决?
代码如下: 1.MainActivity部分 ``` public class MainActivity extends AppCompatActivity implements View.OnClickListener { private BluetoothAdapter mBluetoothAdapter; private RecyclerView mRecyclerView; private ScanResultAdapter mScanResultAdapter; private BluetoothLeScanner mBluetoothLeScanner; private Button mStartScaleButton,mStopScaleButton; private static final int REQUEST_CODE_ACCESS_COARSE_LOCATION = 1; //动态申请权限 private static final int SCAN_START = 1000; //开始搜索 private static final int SCAN_TIME = 10 * 1000; //扫描时间 private static final String TAG = "BLE"; private List<ScanResult> mList = new ArrayList<>(); private List<String> mListAddress = new ArrayList<>(); private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { switch (msg.what){ case SCAN_START: scanBluetooth(false); } return false; } }); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); SetOnClickListener(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//如果 API level 是大于等于 23(Android 6.0) 时 //判断是否具有权限 if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { //判断是否需要向用户解释为什么需要申请该权限 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) { Toast.makeText(MainActivity.this, "自Android 6.0开始需要打开位置权限才可以搜索到Ble设备", Toast.LENGTH_LONG).show(); } //请求权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_CODE_ACCESS_COARSE_LOCATION); } } } private void initView(){ /*找到控件*/ mStartScaleButton = findViewById(R.id.bt_1); mStopScaleButton = findViewById(R.id.bt_2); mRecyclerView = findViewById(R.id.rv_1); mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL)); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mScanResultAdapter = new ScanResultAdapter(this,mList); mRecyclerView.setAdapter(mScanResultAdapter); mScanResultAdapter.setOnItemClickListener(new ScanResultAdapter.OnItemClickListener() { @Override public void OnClick(int position) { scanBluetooth(false); ScanResult scanResult = mList.get(position); } }); /*获取本地蓝牙适配器*/ BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = bluetoothManager.getAdapter(); mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { Toast.makeText(this, "设备不支持BLE", Toast.LENGTH_SHORT).show(); finish(); } /*打开蓝牙*/ if(mBluetoothAdapter == null ||!mBluetoothAdapter.isEnabled()){ Intent TrunOnBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(TrunOnBtIntent,0); } } /*控件点击事件*/ private void SetOnClickListener(){ mStartScaleButton.setOnClickListener(this); mStopScaleButton.setOnClickListener(this); } /*对应控件执行相关操作*/ @Override public void onClick(View v){ switch (v.getId()){ case R.id.bt_1: scanBluetooth(true); Toast.makeText(MainActivity.this,"扫描",Toast.LENGTH_LONG).show(); break; case R.id.bt_2: scanBluetooth(false); break; } } /*开始搜索设备及停止搜索设备函数*/ private void scanBluetooth(boolean isSan){ if(isSan==true){ mBluetoothLeScanner.startScan(mScanCallback); mHandler.sendEmptyMessageDelayed(SCAN_START,SCAN_TIME);//定时搜索蓝牙设备 }else { mBluetoothLeScanner.stopScan(mScanCallback); if(mHandler.hasMessages(SCAN_START)){ mHandler.removeMessages(SCAN_START); } } } /*搜索的回调函数*/ private ScanCallback mScanCallback = new ScanCallback() { @Override public void onScanResult(int callbackType, ScanResult result) { Log.i(TAG,"result:" + result + "callbackType:" + callbackType); /*通过扫描到的设备地址与新扫描的地址作比较,避免重复*/ if(!mListAddress.contains(result.getDevice().getAddress())){ mList.add(result); mListAddress.add(result.getDevice().getAddress()); } super.onScanResult(callbackType, result); } @Override /*扫描失败的处理*/ public void onScanFailed(int errorCode){ Log.e(TAG,"onScanFailed:" + errorCode); } }; } ``` 2.ScanResultAdapter部分 ``` public class ScanResultAdapter extends RecyclerView.Adapter<ScanResultAdapter.ViewHolder> { private Context mContext; private List<ScanResult> mList; private LayoutInflater inflater; private OnItemClickListener onItemClickListener; public ScanResultAdapter(Context mContext,List<ScanResult>mList){ this.mContext = mContext; this.mList = mList; inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } public void setOnItemClickListener(OnItemClickListener onItemClickListener){ this.onItemClickListener = onItemClickListener; } @NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ViewHolder(inflater.from(mContext).inflate(R.layout.layout_scanadapter_item,parent,false)); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, final int position) { ScanResult scanResult = mList.get(position); holder.tv_name.setText("设备名:"+scanResult.getDevice().getName()); holder.tv_address.setText("设备地址:"+scanResult.getDevice().getAddress()); holder.tv_rssi.setText("信号:"+scanResult.getRssi()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(null != onItemClickListener){ onItemClickListener.OnClick(position); } } }); } @Override public int getItemCount() { return mList.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ private TextView tv_name; private TextView tv_address; private TextView tv_rssi; public ViewHolder(@NonNull View itemView) { super(itemView); tv_name = itemView.findViewById(R.id.tv_name); tv_address = itemView.findViewById(R.id.tv_address); tv_rssi = itemView.findViewById(R.id.tv_rssi); } } public interface OnItemClickListener{ void OnClick(int position); } } ``` 另:测试手机为小米mix2s,SDK版本为29
Android-把int型color转换为hexa 字符串型
在这个函数中添加了一个int,froma color,如何把它转换成一个hexa字符串:#efefef public static int RGB(float[] hsv) { return Color.HSVToColor(hsv); }
在java中,当创建一个子类对象会不会先创建父类对象?(如果父类是抽象类呢?)
在java中,当创建一个子类对象会不会先创建父类对象?(如果父类是抽象类呢?) 被一些教材和资料误导和困扰,有些教材和资料上说,按照面向对象的思想,“没有爸爸,怎么会有儿子”,即 “没有父类怎么会有子类”。言外之意就是说,创建子类对象时,会先创建父类对象!然而真的是这样吗? 提个问题:如果当创建一个子类对象会先创建父类对象的话,那么如果父类是抽象类的话,那该抽象父类也会被实例化喽,这与抽象类不能实例化相互矛盾啊! ![图片说明](https://img-ask.csdn.net/upload/202002/27/1582774921_322981.png) ![图片说明](https://img-ask.csdn.net/upload/202002/27/1582774929_568759.png) ![图片说明](https://img-ask.csdn.net/upload/202002/27/1582774942_163327.png) ``` package javase5; public abstract class Animal { int age; public Animal() { this.age = 6; System.out.println("我是Animal类的无参构造函数"); } } ``` ``` package javase5; public class Cat extends Animal{ public Cat() { // super(); //就算不写super();这行代码,系统也会默认自动调用父类的无参构造函数 System.out.println("我是Cat类的无参构造函数"); } public static void main(String[] args) { Cat cat = new Cat(); System.out.println(cat.age); } } ```
c#调用c++的dll文件时,存在调用继承了另一个类的回到函数如何调用?
![图片说明](https://img-ask.csdn.net/upload/201911/27/1574817535_261789.png) 在调用此回调函数时,写了委托但是没有调用成功 下面是委托代码 ``` [UnmanagedFunctionPointerAttribute(CallingConvention.StdCall, CharSet = CharSet.Ansi)] public delegate void CCallbackImp(int nEventID, structure.CR_Event pEvent); ``` 下面是调用dll注册回到函数代码 ``` [DllImport(@"CRInterface.dll", CallingConvention = CallingConvention.StdCall, EntryPoint = "CR_RegisterEventCallback")] public extern unsafe static int CR_RegisterEventCallback(CCallbackImp pCallback); ``` 回调函数具体代码 ``` public static void CallBackFunction(int nEventID, structure.CR_Event pEvent) { MessageBox.Show("进入回调函数"+nEventID.ToString()); if (nEventID == (int)structure.CR_EventID.CR_EVT_NEW_FRAME) { MessageBox.Show(nEventID.ToString()); } } ``` 接口原理是当执行以下代码是,dll会自动调用回调函数,然后执行会到函数中的代码 ``` resultprop = ImportDll.CR_StartAcquisition(cDETR_IDX, cFRM_NUM,(IntPtr) nBufSize, 1); ``` 但是最后不知道哪儿错误了,么有进入回调函数中
继承自QObject的子类如何通过类名(字符串)动态创建实例?
如题,我有一个类: ``` class IMessageItem : public QObject { Q_OBJECT private: // ... } ``` </br> 在另一个函数: ``` static IMessageItem *BuildItem(const QString& className); ``` </br>如果还有其他继承自IMessageItem的类,并且想要通过className来创捷一个继承IMessageItem的对象。比如有个类FileItem继承自IMessageItem: ``` class FileItem : public IMessageItem { Q_OBJECT private: // ... } ``` </br>那通过调用 ``` BuildItem(QStringLiteral("FileItem")) ``` 请问函数内部如何实现,才能创建出一个实例? </br>本来我是想通过const int id = QMetaType::type()来创建,但调试发现返回得到的id总是0(QMetaType::UnknownType),所以无法创建实例。
c#怎么一次输入多个数字,类似于c语言的scanf
public static double Test(double x) { return x*x*Math.PI; } public static int Test(int i,int j) { return i * j; } public static double Test(double i, double j, double k) { return ((i + j) * k) / 2; } static void Main(string[] args) { double x = Convert.ToInt32(Console.ReadLine()); int a = Convert.ToInt32(Console.ReadLine()); int b = Convert.ToInt32(Console.ReadLine()); int j = Convert.ToInt32(Console.ReadLine()); int k = Convert.ToInt32(Console.ReadLine()); int l = Convert.ToInt32(Console.ReadLine()); Test(x); Test(a,b); Test(j, k,l); Console.WriteLine("圆的面积为"+Test(x)); Console.WriteLine("矩形的面积为"+Test(a, b)); Console.WriteLine("梯形的面积为"+Test(j, k, l)); } 上面的是我写的代码,但是每次输入都要写一行,影响观看,有没有像scanf这样的函数一次输入多个数字的函数
缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数
int lastnum = getNum(source.getProperty("fileName")); public static int getNum(String Filename) throws IOException { InputStream myxls; myxls = new FileInputStream(Filename); sr = new XSSFWorkbook(myxls); XSSFSheet sheet = sr.getSheetAt(0);// 第一个工作表 return sheet.getLastRowNum();// 获取第一个工作表的行数 } 第一行报错:缺省构造函数不能处理隐式超构造函数抛出的异常类型 IOException。必须定义显式构造函数
java中静态类作为方法的参数可以么,或者有什么替代的方案
我是初学者,正在制作一个打飞机的小游戏- -!。现在遇到一点问题,还请各位大神赐教。 问题描述: 我的敌机类Enemy下有多个属性(如位置坐标x和y、血量hp、姿态degree、速度speed、贴图bmp等),在实例化时可以通过下面的这条语句来实例化并初始化。 ``` new Enemy(x,y,hp,degree,speed,bmp) ``` 由于敌机种类较多,我打算将这些数据静态化放在一个类Params中。Params下有多个子类,这些子类的属性列表完全相同且全为静态属性(也可直接是静态子类),仅数值不同。比如某两种型号的敌机e_plane01以及e_plane02: ``` public class Params { static class e_plane01{ public static int x=11; public static int y=12; public static int hp=13; } static class e_plane02{ public static int x=21; public static int y=22; public static int hp=23; } } ``` 那么问题就来了,我实例化时的代码就老长老长的: ``` enemy01= new Enemy(Params.e_plane01.x, Params.e_plane01.y, Params.e_plane01.hp,…); ``` 如果是在C里,那我完全可以把E_plane作为一个结构体模板(保证属性列表相同),并分别创建e_plane01、e_plane02等结构体节点(不同种类的敌机的同一属性不尽相同),再将结构体节点的指针作为参数传给别的函数去操作。但java中没有结构体,我有没有办法写出 enemy01=new Enemy(&Params.e_plane01);这样简练的句子呢?这样的话,我只需修改构造函数成这样就好了: ``` Enemy(struct E_plane *someStaticClass){ this->x=someStaticClass->x; this->y=someStaticClass->y; … } ``` 所以特此求教各位大神,有没有解决办法,或者是我数据结构存在问题,有没有什么其他方案?谢谢大家
java怎么动态化用户输入的函数求定积分
``` import java.util.Scanner; public class Demo{ /* * 用户输入区间 * 均分区间 * 获取到函数原型 * 每个区间的中点带入函数原型得到高度y *高度y的和乘以均分的区间x * 得到积分 * */ static float minX; static float maxX; static String function; static float num = 0;//区间高度之和 static float leng = 0;//区间的长度 static float centerNum = 0;//区间的中间值 public static void DingJifen(){ System.out.println("请输入要定积分的区间:\nmin(x) = "); minX = new Scanner(System.in).nextFloat(); System.out.println("max(x) = "); maxX = new Scanner(System.in).nextFloat(); System.out.println("请输入函数原型:\ny="); function = new Scanner(System.in).next(); leng = (maxX - minX)/100; for(float a = minX;a<=maxX;a += leng){ centerNum = a+leng/2; num += function(centerNum); } System.out.println("在"+minX+"到"+maxX+"区间内,这个函数的定积分是:"+(num*leng)); } // 获取函数原型 private static float function(float centerNum) { /* * 这个方法不知道怎么写了 * 想着把用户输入的函数原型转化成ascill码 * 然后循环遍历判断数据类型 * 最后整合起来 * 但是用户输入的函数里面可能有log、sqrt、sin等等 * 不知道怎么办了,是不是我思路有问题,求解! * */ float y; for(int i = 0;i<function.length();i++){ int a = function.charAt(i);//转换成ascll码 Object b = null; if (48<=a&&a<=57) { //a是数字 b = a; break; }else if(65<=a&&a<=90){ //a是大写字母 b = (char)a; break; }else if(97<=a&&a<=122){ //a是小写字母 b = (char)a; break; }else if(a==94){ //a是^ b = '^'; break; } if(a=='x'||a=='X'){ b = centerNum; } } return 0; } public static void main(String[] args) { DingJifen(); } } ```
java怎么动态化用户输入的函数原型求定积分
``` import java.util.Scanner; public class Demo{ /* * 用户输入区间 * 均分区间 * 获取到函数原型 * 每个区间的中点代入函数原型得到y * 每个区间的高度y的和乘以区间的长度 * 得到积分 * */ static float minX; static float maxX; static String function; static float num = 0;//区间高度之和 static float leng = 0;//区间的长度 static float centerNum = 0;//区间的中间值 public static void DingJifen(){ System.out.println("请输入要定积分的区间:\nmin(x) = "); minX = new Scanner(System.in).nextFloat(); System.out.println("max(x) = "); maxX = new Scanner(System.in).nextFloat(); System.out.println("请输入函数原型:\ny="); function = new Scanner(System.in).next(); leng = (maxX - minX)/1000; for(float a = minX;a<=maxX;a += leng){ centerNum = a+leng/2; num += function(centerNum); } System.out.println("在"+minX+"到"+maxX+"区间内,这个函数的定积分是:"+(num*leng)); } // 获取函数原型 private static float function(float centerNum) { /* * 这个类不知道要怎么写 * 开始想的是将用户输入的函数原型 * 转化成ascill码然后循环判断类型最后整合起来 * 但是函数原型并不是确定的,可能会包含math函数或者其他的 * 好难啊。。。。 * */ float y; for(int i = 0;i<function.length();i++){ int a = function.charAt(i);//转换成ascll码 Object b = null; if (48<=a&&a<=57) { //a是数字 b = a; break; }else if(65<=a&&a<=90){ //a是大写字母 b = (char)a; break; }else if(97<=a&&a<=122){ //a是小写字母 b = (char)a; break; }else if(a==94){ //a是^ b = '^'; break; } if(a=='x'||a=='X'){ b = centerNum; } } return 0; } public static void main(String[] args) { DingJifen(); } } ```
JavaScriptSerializer“ 没有为类型“System.String”定义无参数的构造函数”
JavaScriptSerializer c# 反序列化的时候报错“ 没有为类型“System.String”定义无参数的构造函数 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Script.Serialization; using System.Runtime.Serialization; namespace HLSX.Jason { //[Serializable] public class ResultData { public ResultData() { } public ResultData(int res, string strda) { result = res; data = strda; } public int result { get; set; } public string data { get; set; } } class DealJson{ // ResultData rsData; public static int getResult( string strJson ) { ResultData rsData = new ResultData(); JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); rsData = jsonSerializer.Deserialize<ResultData>(strJson); return rsData.result; } public static string getData(string strJson) { ResultData rsData = new ResultData(); rsData.result = -2; rsData.data = string.Empty; JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); rsData = jsonSerializer.Deserialize<ResultData>(strJson);【此行报错】 return rsData.data; } } }
关于线程终止后还执行的问题
我想通过外部标识符终止线程的执行,然而发现几个奇怪的地方。 ``` public class TerminateThread implements Runnable { //1、外部标识 private boolean flag = true; private String name; public TerminateThread(String name) { this.name = name; } @Override public void run() { int i = 0; //2、关联标识,true-->运行 -->false停止 while (flag) { System.out.println(name + "-->" + i++); } } //3、对外提供方法改变标识 public void terminate() { this.flag = false; } public static void main(String[] args) { TerminateThread tt = new TerminateThread("C罗"); new Thread(tt).start(); for(int i = 0; i <= 99; i++) { if(i == 88) { tt.terminate(); System.out.println("tt gameover"); } System.out.println("main-->" + i); } } } ``` ![图片说明](https://img-ask.csdn.net/upload/202002/07/1581085424_364110.png) 这个程序运行下来大部分是在打完了main-->99后又打印了C罗-->0,但是这个时候flag应该为false了呀。 还有一些奇怪的地方,比如run方法里打印的那行代码,如果我不打印name那么程序执行的结果就正常了,至少不会在flag为false后还打印,而且terminate函数里我一开始写的没有this关键字,我发现这个会影响结果,求教
Java的死循环里的代码不执行
死循环里的代码不执行,但是在死循环里加个输出就执行,并且线程也没有退出 ``` package shendi.utils; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; /** * -问题 代码原封不动运行,two函数里的死循环感觉像是挂了一样 但是线程没有结束 不执行 * -但是在循环内加个输出,函数就没有问题,Why? */ public class Test extends JFrame implements Runnable { private String type; private static int i = 0; public Test() { JButton button = new JButton("i+1"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { i++; System.out.println("two函数的死循环就是不会被执行 + i现在是:"+i); } }); this.add(button); this.setBounds(10, 10,100,100); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); new Thread(new Test("1")).start(); new Thread(new Test("2")).start(); } public Test(String type) {this.type = type;} public static void main(String[] args) { new Test(); } private void one() { while (true) { // System.out.println(i); } } private void two() { System.out.println("two被调用了,线程 "); while (true) { if (1 == 2) break; // if (i == 0) System.out.println("i=0 two函数"); if (i > 1) System.out.println("我是活的"); } System.out.println("two挂了"); } public void run() { switch (type) { case "1": one(); break; case "2": two(); break; } } } ```
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了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 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
立即提问