在类的构造函数里可以定义一个局部变量吗?

在类的构造函数里可以定义一个局部变量吗? 我用到的一个类,其一个构造函数为多参构造函数,我想在构造函数内部定义一个局部变量:一个String型的字符串,用于判断不同的参数值,这样可以吗?

oo

2个回答

首先回答你的问题,“可以”。但是没有必要。参数就相当于这个方法的局部变量。你可以试着在方法中声明一个类型和名称与参数的类型和名称相同的局部变量。编译时会报错的。提示已经重复了。你可以直接那参数来判断即可。如果你是想用参数跟一个值比较,根据参数不同,做不同的处理,那么这个值应该是一个String类型的常量(因为你上面提到是String类型)。而这个常量是应该定义在一个对象中的,看看你的系统中是不是应该有这样一个对象。如果没有的话,我认为你的代码中缺少一个与业务相关的对象。如果就是一个纯粹常量,不涉及任务业务中的对象的话,那么可以定义在你这个方法所在的类中,或者常量类中。

有句话叫:"到底行不行,做了才知道."

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
构造函数中变量存在周期的问题

定义了一个窗口类,在其构造函数里边定义一个按钮。用下边两种方式 1. QPushButton b5; b5.setParent(this); b5.setText("test"); b5.move(100,100); 2. QPushButton *b4 = new QPushButton(this); b4->setText("Lambda"); b4->move(100,100); 第一种啥也没有 第二种可以正常显示按钮,为什么第一种不行啊

java中的反射的变量定义问题

新人初学,还望各位能多多帮助 我在学习反射的过程中,遇到这样一个问题 String s1 = new String (new StringBuffer("abc")); 这条语句我看了下JDK文档,发现String的构造函数中有一个构造方法的参数是StringBuffer的对象,然后又看了看StringBuffer的定义,发现这条语句等于 String s1 = "abc"; 为什么要这样写呢, 还有 Constructor cs1 = String.class.getConstructor(StringBuffer.class); 这条语句完全看不懂,书上说Class(大写)中存在一个getConstructor这个方法,我也查了下,确实是有的,但是又说了,所以通过String.class(小写)获取关于String类的字节码,我看了下getConstructor的返回值,是一个构造函数,但是具体这条语句是怎么实现的,我还是不懂,求教各位,为什么这个class一会大写,一会小写,‘ 初学,求助,谢谢

我在一个类里面写了个全局变量再用对象调用的时候值会改变吗?

![![图片说明](https://img-ask.csdn.net/upload/201511/06/1446788873_362331.png) 图片说明](https://img-ask.csdn.net/upload/201511/06/1446788859_92980.png)

java如何调用其他类中的变量

初学者,最近在学着用窗体做一个个人记账本。其中我已经写好了load部分和register部分,连上数据库也都可以实现。然后在编写Accountbook这个类的时候我要知道我现在是哪个用户在登录并查询这个用户的记录。但是这个用户变量在load类中。怎么调用? 以下为部分源码: load类: import java.awt.*; import javax.swing.*; import java.sql.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Login extends JFrame implements ActionListener { Connection conn; Statement stat; PreparedStatement ps; ResultSet rs; JButton load,reg; JLabel userJLabel,passJLabel; JPanel userJPanel, passJPanel,loadJPanel; JTextField userJtf; JPasswordField passJtf; String user,pwd; public static void main(String[] args) { Login login = new Login(); } public Login(){ super("登录"); this.setSize(400,300); this.setLocation(300,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLayout(new GridLayout(4, 0)); userJLabel = new JLabel("用户名:"); userJtf = new JTextField(10); userJPanel = new JPanel(); userJPanel.add(userJLabel); userJPanel.add(userJtf); this.getContentPane().add(userJPanel); passJLabel = new JLabel("密 码:"); passJtf = new JPasswordField(10); passJPanel = new JPanel(); passJPanel.add(passJLabel); passJPanel.add(passJtf); this.getContentPane().add(passJPanel); loadJPanel = new JPanel(); load = new JButton("登录"); load.addActionListener(this); loadJPanel.add(load); reg = new JButton("注册"); reg.addActionListener(this); loadJPanel.add(reg); this.getContentPane().add(loadJPanel); this.setVisible(true); this.connection(); } public void connection(){ try { Class.forName("com.mysql.jdbc.Driver"); String url="jdbc:mysql://localhost:3306/db_user"; conn = DriverManager.getConnection(url,"root","root"); stat = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); } catch (Exception e) { JOptionPane.showMessageDialog(this,"连接数据库错误!","错误对话框",JOptionPane.ERROR_MESSAGE); } } public void actionPerformed(ActionEvent e) { if(e.getSource() == load){ try { ps=conn.prepareStatement("select * from tb_user where user=? and pwd=? "); ps.setString(1, userJtf.getText()); ps.setString(2, new String(passJtf.getPassword())); rs = ps.executeQuery(); if(rs.next()) { user = rs.getString(1); pwd = rs.getString(2); JOptionPane.showMessageDialog(null, "登录成功!!!", "提示消息", JOptionPane.WARNING_MESSAGE); System.out.println("成功获取到密码和用户名from数据库"); System.out.println(user + "\t" + pwd + "\t"); }else { JOptionPane.showMessageDialog(null, "用户名或者密码错误,请重新输入!", "提示消息", JOptionPane.ERROR_MESSAGE); } } catch (Exception ex) {} } if(e.getSource() == reg){ Register register = new Register(); } } } Accountbook类中: rs=stat.executeQuery("select * from tb_accountbook where user = '"+user+"'"); 这个user怎么获取

为什么JAVA中一些类用另的一个类的对象来调用?

import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegxDemo03 { public static void main(String[] args) { String str = "a-753933" ; String pat ="[abc]-\\d{6}"; Pattern p = Pattern.compile(pat); Matcher m = p.matcher(str); //验证字符串是否合法 if(m.matches()){ System.out.println("格式合格"); }else{ System.out.println("格式不合格"); } } } 感觉有点奇怪,这是一种什么逻辑?直接用一个类来实现不就可以了。具体的像 Pattern p = Pattern.compile(pat); Matcher m = p.matcher(str); //验证字符串是否合法 还有其他一些类,像操作数据库的类也是这样的。 还比如向MySQL的JDBC链接也是这样.比如: Connection con =DriverManager.getConnection(url,username,password); Statement stmt = con.createStatement(); ResultSet rt = stmt.executeQuery(); 我不明白的是为什么需要通过先获得con对象才能通过con对象获得stmt后才能获得rt对象.不明白这种对象的调用原理..新手.才接触java没多久,,希望各位大神能帮忙解惑.说细致点..谢谢..最好能举例说明.. -----------------问答分割线------------------ 昨天提问后.自己从面向对象上找资料复习..然后看到了单例设计模式.因为之前老师在说单例设计模式时一笔带过了..所以印象不深刻..这里给自己的提问做个半总结.因为资料还在看....自我解决问题嘛.. --------------------------------------------- 设计模式:对问题行之有效的解决方式.其实它是一种思想. 1.单例设计模式. 解决的问题:就是可以保证一个类在内存中的对象唯一性. 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性. 如何保证对象唯一性呢? 1.不允许其他程序用new创建该类对象. 2.在该类创建一个本类实例. 3.对外提供一个方法让其他程序可以获取该对象. 步骤: 1.私有化该类构造函数. 2.通过new在本类中创建一个本类对象 3.定义一个公有的方法,将创建的对象返回. 举个简单的例子: class Single { static Single s = new Single( ); private Single( ){} public static Single getInstance( ) { return s; } } class SingleDemo { public static void main(String[] args) { single ss = single.getInstance( ); } } 私有化构造器,通过类名.方法名调用本类的方法返回s.来得到本类中new出来的对象.这就是昨天所提问的一部分解答..还有一部分问题找答案..为什么需要得到一层再调用一层..我也知道这是一种设计模式..只是想更深入的了解它的设计原理.以及优点.. 谢谢各位耐心的解答..等我完全解决了问题..我再结帖.语言组织能力不是太好,希望这些问题能让与我有同样疑惑的伙伴做个最基础的解惑..非常感谢大家的热心回答及帮助..

类全局变量的初始化,两种方式的区别

public class Test implements ITest { private List<School> schoolList = new ArrayList<School>(); public Test() { super(); } } 和 public class Test implements ITest { private List<School> schoolList ; public Test() { super(); schoolList = new ArrayList<School>(); } } 有什么区别吗?两者相比有什么优劣之处吗

关于c++类内成员赋值的问题(大一基础)

本人大一计算机新生,学完c在学c++,看到一行代码如下: ``` #include <iostream> using namespace std; class stu { public: int a; int set(int n) { b = n; return b; } private: int b; }; int main() { stu s; cout << s.set(1); } ``` 这是一个用成员函数set给私有变量b赋值的程序,我想问一下,成员函数set里面直接用的b,也就是说成员私有变量b的作用域覆盖了成员函数set?那么我想知道: 1、是不是类中所有成员变量的标识符作用域都覆盖整个类的内部 2、如果(1)的答案是正确的话,那么如果我改一下成员函数:int set(int b),让形参标识符也是‘b’,(经vs测试没有报错)那么此时编译器又是怎么操作的呢,不会产生歧义么?(自己试了半天,也不知道该怎么测试才能说明问题,网上也找不到相关答案(捂脸)) 3、还有一点点关于构造函数的,对于无形参构造函数,它是对公有还是私有成员变量进行赋初值?而且同上问,它貌似也是上来直接啪啦啪啦把成员标识符一写、一赋值就ok了? //总之,最大的问题就是:类中给成员变量赋初值貌似就是直接在成员函数中直接操作(而没有什么访问什么的流程),这种方法真的不会跟同名的形参引起歧义么?成员函数内部跟整个类都是联通的?如果是的话,怎么解释同名形参不报错?如果不是联通的话,那么形参如果是同名的,整个成员函数始终只是玩弄一个局部变量,内部成员不会改变,没有达到预期的效果,还不如用更复杂严谨的语言进行访问改变?(感觉上是一个功能的漏洞...吗) 新人一枚,虽语无伦次,身无分文,却也是热爱着编程,所以希望大佬们理解一下0.0

vs2017编译报错,变量未初始化?

今天在写atcoder contest 080E - Young Maids时,在我的solve()函数里面总是说我的 down没有初始化,但是我明明在循环里面初始化了啊? 附上代码: ``` #include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int> ans; int n; const int INF = 0x3f3f3f; void solve(vector<int> dir,int f,int s) { if (dir.empty()) return; int maxhead = 0, cnt = 0,down; for (int i = 0; i < dir.size()-1; ++i) { if (dir[i] != f && dir[i] != s) { if (dir[i + 1] != f && dir[i + 1] != s) { if (dir[i] > maxhead) { cout << "ok" << endl; cout << i << endl; maxhead = dir[i]; down = i; } } } } cout << down << endl; ans.push_back(dir[down + 1]); ans.push_back(dir[down]); vector<int> nex; for (int i = 0; i < dir.size(); ++i) { if (i != down && i!=down+1) { nex.push_back(dir[i]); } } solve(nex, f, s); } int main() { vector<int> iv; int temp,goalf=INF,goals=INF; cin >> n; for (int i = 0; i < n; ++i) { cin >> temp; iv.push_back(temp); if (temp < goalf && !(i%2)) { goalf = temp; } } int i; for (i = 0; iv[i] != goalf; ++i); for (int j = i + 1; j < n; ++j) { if (iv[j] < goals) { goals = iv[j]; } } cout << goalf << " " << goals << endl; solve(iv,goalf,goals); reverse(ans.begin(), ans.end()); for (int i = 0; i < ans.size(); ++i) { cout << ans[i] << " "; } cout << endl; system("pause"); return 0; } ``` 望各位能指点一二,谢了

C语言 数据结构 创建链表的时候,在for循环中的变量是否每次循环结束都被销毁

如题,先谢谢大神解答。 ![图片说明](https://img-ask.csdn.net/upload/201610/04/1475513733_456747.png) ![图片说明](https://img-ask.csdn.net/upload/201610/04/1475513745_903732.png)

一个关于map的初始化问题 c++

我在看cocos源码是 遇到的 关于map初始化的问题 ,我没见过 然后我仿照写了个 都是错的 不明白为什么? 求大神 ``` typedef struct myFiexl { myFiexl(int r,int g, int b) :m_r(r),m_g(g),m_b(b){} int m_r; int m_g; int m_b; }Fiexl; typedef map<string, Fiexl> FiexlMap; typedef FiexlMap::value_type FiexlVal; FiexlMap myFielmap; FiexlVal myFielSum[] = { FiexlVal("red",Fiexl(0,255,0)), FiexlVal("black",Fiexl(255,255,255)), FiexlVal("green",Fiexl(255,0,0)), }; myFielmap(myFielSum, myFielSum+sizeof(myFielSum)/sizeof(myFielSum[0])); ```

JAVA课程设计简单的俄罗斯方块,急!!!

老师提供的代码: import java.awt.*; import java.awt.event.*; /** * Sample application of Rassia game * * @author Zhefan Jin * @version 1.00 07/05/28 */ class GamePanel extends Frame { /** * The attributes of class GamePanel */ int cellSize =20; int hCellCount =30; int vCellCount =40; int sideSpace =20, bottomSpace=20, upSpace=60; Dimension dimFrame, dimGame; Point GameAreaZero; BlockB activeBlock; //End of attributes private Point Convert2DC(Point p){ Point pReturn =new Point(); pReturn.x =p.x +sideSpace; pReturn.y =dimFrame.height -bottomSpace -p.y; return pReturn; } /** * The constructor. */ public GamePanel() { dimFrame =new Dimension(); dimGame =new Dimension(); GameAreaZero =new Point(); dimFrame.height = upSpace +bottomSpace +vCellCount*cellSize; dimFrame.width = sideSpace*2 + hCellCount*cellSize; GameAreaZero.x = sideSpace; GameAreaZero.y = dimFrame.height -bottomSpace; dimGame.height = vCellCount*cellSize; dimGame.width = hCellCount*cellSize; activeBlock =new BlockB(); System.out.println(dimFrame.toString()); System.out.println(GameAreaZero.toString()); setResizable(false); MenuBar menuBar = new MenuBar(); Menu menuFile = new Menu(); MenuItem menuFileExit = new MenuItem(); MenuItem menuFileStart = new MenuItem(); menuFile.setLabel("File"); menuFileExit.setLabel("Exit"); menuFileStart.setLabel("Start"); // Add action listener.for the menu button menuFileExit.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { GamePanel.this.windowClosed(); //syntex? } } ); menuFileStart.addActionListener ( new ActionListener() { public 老师的要求: 1. 老师已提供了部分代码,你的目标是按要求完成另一部分代码,最终实现俄罗斯方块游戏的一个局部,效果如下: ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441674790_8849.png) 图 1 2. 具体如下: a) 已提供的代码是Russia.java,这个文件是正确的,不要对它作任何修改。 b) 要求你生成一个新文件BlockB.java,在其中实现类BlockB。Russia.java中使用了BlockB类,如果你的编写都正确,Russia就能正常执行。 c) BlockB.java和Russia.java需放在同一个目录下。按照要求实现BlockB类后,编译这两个文件,然后运行Russia,正确情况下将出现图1效果。 3. BlockB类的要求: a) BlockB类的数据(变量)成员是: i. Point类的对象origin, p0, p1, p2, p3。Point类在java类库的位置是java.awt.Point。(我们在上学期的实验07中使用了Point类。实验07的题目和答案在发下来的资料中供参考。) ii. int类型数据成员gesture,其取值范围0-3,表示4种姿态,具体说明见后。 b) BlockB类的方法(函数)成员如下: i. BlockB() 构造函数。其中对Point类数据成员进行创建(new),并对其它成员变量赋合适的初值。 ii. void setGesture(int g) 设置姿态,包含两个动作:1)用参数g对数据成员gesture进行赋值。2)根据新的姿态,调整p0, p1, p2, p3在Block局部坐标系里的坐标值,坐标说明见后。 iii. void moveTo(int x, int y) 把数据成员origin(原点)移动到窗口坐标系(x,y)位置。 iv. Point getP0() 直接返回p0。 v. Point getP1() 直接返回p1。 vi. Point getP2() 直接返回p2。 vii. Point getP3() 直接返回p3。 4. 关于点的位置、姿态等的说明: a) 坐标系的说明 i. 俄罗斯方块游戏中的活动块称为一个Block(块)。游戏使用两种坐标系:Block局部坐标系和游戏窗口坐标系。 ii. Block局部的坐标系定义了组成Block的4个小方块p0, p1, p2, p3之间的位置关系,如下图: ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441675020_644932.png) 如上图中4个点的坐标可以是:p0(0,0), p1(0,1), p2(0,2), p3(-1,0)。 iii. 一个Block在窗口中的位置由点origin确定,origin是Block坐标系的原点在窗口坐标系中的位置,如下图origin位置是(10, 10): ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441675048_482696.png) b) 姿态(gesture)的说明。一个Block可以有4种姿态,分别用0、1、2、3来表示,每种姿态下点p0、p1、p2、p3的位置是不同的。 ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441675069_836083.png)

我用c++写了一套简单的surf算法识别图像的程序,现在要封装起来,供c#调用。请问如何封装?

全部代码如下: #include<iostream> #include<opencv2/opencv.hpp> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/legacy/legacy.hpp> #include <opencv2/nonfree/nonfree.hpp> #include<opencv2/features2d/features2d.hpp> #include<time.h> using namespace cv; using namespace std; int main() { double start = clock(); //【1】加载源图像 Mat src1 = imread("26.png", 1);//小图 Mat src2 = imread("25.png", 1);//大图 if ((src1.cols == 0) || (src2.cols == 0)) { cout << "can not find input picture!" << endl; return 0; } int minHessian = 1000;//定义SURF中hessian阈值特征点检测算子 SurfFeatureDetector detector(minHessian);//构造surf特征检测器(类),定义一个SurfFeatureDetector特征检测类对象 vector<KeyPoint>keyPoint1, keyPoint2;//vector模板类是能够存放任意类型的动态数组,能够增加和压缩数据 //【2】调用detect函数检测出SURF特征点,保存在vector容器中 detector.detect(src1, keyPoint1); detector.detect(src2, keyPoint2); /*计算特征向量*/ SurfDescriptorExtractor extractor;//构造SURF描述子提取器 Mat descriptors1, descriptors2; //提取SURF描述子 extractor.compute(src1, keyPoint1, descriptors1); extractor.compute(src2, keyPoint2, descriptors2); //使用FLANNY匹配算子进行匹配 FlannBasedMatcher FLMatcher;//构造匹配器 vector<DMatch>matches;//匹配两幅图的描述子 FLMatcher.match(descriptors1, descriptors2, matches); double max_dist = 0; double min_dist = 100;//设置的最大距离,最小距离 for (int i = 0; i < descriptors1.rows; i++)//计算出关键点之间的最大距离和最小距离 { double dist = matches[i].distance; if (dist < min_dist) { min_dist = dist; } if (dist > max_dist) { max_dist = dist; } } cout << "最大距离阈值:" << max_dist << endl; cout << "最小距离阈值:" << min_dist << endl; cout << "所需距离阈值小于三倍的最小距离阈值有效!" << endl; //存下匹配距离小于3*min_dist的点对 vector<DMatch>good_matches; for (int i = 0; i < descriptors1.rows; i++) { if (matches[i].distance < 3 * (min_dist + DBL_MIN)) { good_matches.push_back(matches[i]); } } //绘制匹配到的关键点 Mat imgMatches; drawMatches(src1, //小图片 keyPoint1,//小图片特征点,输出参数 src2, //大图片 keyPoint2,//大图片特征点,输出参数 good_matches, //匹配距离小于3*min_dist的点对 imgMatches, //输出图像 Scalar::all(-1), Scalar::all(-1),//匹配的输出颜色,即线和关键点的颜色,单一特征点的颜色,它也有表示随机生成颜色的默认值Scalar::all(-1)。 vector<char>(), DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);//特征绘制的标识符,有默认值NOT_DRAW_SINGLE_POINTS(单点特征点不会被绘制)等。 vector<Point2f>obj;//定义两个局部变量 vector<Point2f>scene; //从匹配成功的匹配对中获取特征点 for (unsigned int i = 0; i < good_matches.size(); i++)//把匹配对的点放入类型为Point2f类的vector容器里 { obj.push_back(keyPoint1[good_matches[i].queryIdx].pt); scene.push_back(keyPoint2[good_matches[i].trainIdx].pt); } //使用函数findHomography 寻找匹配上的特征点的变换 //使用函数perspectiveTransform 来映射点 Mat H = findHomography(obj, scene, CV_RANSAC);//计算透视变换 ,找到源图片和目标图片的透视变换H //CV_RANSAC含义基于RANSAC的鲁棒性方法 //从待测图片中获取角点 vector<Point2f>obj_corners(4); obj_corners[0] = cvPoint(0, 0); obj_corners[1] = cvPoint(src1.cols, 0); obj_corners[2] = cvPoint(src1.cols, src1.rows); obj_corners[3] = cvPoint(0, src1.rows); vector<Point2f>scene_corners(4); //进行透视变换 perspectiveTransform(obj_corners, //perspectiveTransform函数作用是进行向量透视矩阵变换 scene_corners,//与原图同样尺寸 H);//透视变换矩阵 //绘制出角点之间的直线 for (int i = 0; i < 3; i++) { line(imgMatches, scene_corners[i] + Point2f(static_cast<float>(src1.cols), 0), scene_corners[i + 1] + Point2f(static_cast<float>(src1.cols), 0), Scalar(255, 0, 123), 4); } line(imgMatches, scene_corners[3] + Point2f(static_cast<float>(src1.cols), 0), scene_corners[0] + Point2f(static_cast<float>(src1.cols), 0), Scalar(255, 0, 123), 4); imshow("匹配:", imgMatches); double end = clock(); cout << "整个过程所要时间:" << (end - start) << "ms" << endl; waitKey(0); return 1; }

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

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

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

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

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

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

你以为这样写Java代码很6,但我看不懂

为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码。下面这一行代码(出自大牛之手)据说可以征服你的朋友,让他们觉得你写的代码很 6,来欣赏一下吧。 IntStream.range(1, 5).boxed().map(i -&gt; { System.out.print("Happy Birthday "); if (i == 3) return "dear NAME"...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

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

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

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

程序员是做全栈工程师好?还是专注一个领域好?

昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一开始就是做全栈的! 全栈工程师听起来好听,但绝没有你想象的那么简单。 今天听我来给你唠,记得帮我点赞哦。 一、全栈工程师的职责 如果你学习编程的目的只是玩玩,那随意,想怎么学怎么学。...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

前端还能这么玩?(女朋友生日,用前端写了一个好玩的送给了她,高兴坏了)

立即提问
相关内容推荐