求java代码,关于两个list数组比较的,并且把不同的部分输出打印

如何比较两个list数组,并且把不同的部分输出打印
第一个数组,是从数据库中查到的:while(rs.next()){
nsrsbhName.put(rs.getString("b"),rs.getString("a"));
}

nsrsbhList.add(nsrsbhName); //将map内容放入到list中
for (Map m : nsrsbhList){
for (String k : m.keySet())
{
System.out.println(k + " " + m.get(k));
}
}
显示的效果是:12201 济南 12202 青岛
第二个数组是自己定义的:
String[] arr={"12201","12202","12203","12204","12205","12206","12207","12208","12209","12210","12211","12212","12213","12214","12215","12216","12217"};
比较这两个数组,将不同的部分输出打印

4个回答

或者将两条数组加到同一个集合中,排序删掉同一元素。剩下就是不同的

可以不可以将两个数组存放在map中,然后判断key的值来判断,打印不同的项

先排序一下,删掉相同元素得到两条元素唯一的list(你的数据没有相同的,可以不处理);
然后比较两个集合,删掉相同元素,你是数组就将数组元素置“0”,打印两条数组就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java集合Comparator接口实现排序问题
设计一个整数排序算法,规则很简单: 1、同为正数或者同为负数,小的排前,大的排后。 2、所有负数大于所有正数。所有正数排前,负数排后。 3、零最小。排最前。 直接上代码: ``` import java.util.ArrayList; import java.util.Comparator; import java.util.List; import org.junit.Test; public class TestComparator { @Test public void testInt() { List<Integer> list=new ArrayList<Integer>(); list.add(3222222); list.add(-1000); list.add(1000); list.add(1323235); list.add(-1065650); list.add(145466); list.sort(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { if(o1*o2>0) { return o1-o2; }else if(o1*o2<0){ return o2-o1; }else { return o1==0?-1:1; } } }); System.out.println(list); } } ``` 期望结果:1000 145466 1323235 3222222 -1000 -1065650 实际输出结果:[1000, 1323235, 145466, -1065650, -1000, 3222222] 我对compare函数返回值的理解是: 返回值为负数,两个比较对象不交换位置; 返回值为正数或0,两个比较对象交换位置; 是理解上存在问题,还是代码逻辑上存在问题?请各位指导。
急~ java中根据某一属性比较两个list集合是否相同
两个集合list1,list2, 只有一个相同的属性(AliasId) **以list1为准**,根据AliasId检测list2在list1中是否存在 (1)找出list2中_不存在的_元素并新增该记录 (2)找出list2中_多余的_元素并删除 求代码~ ![图片说明](https://img-ask.csdn.net/upload/201712/12/1513070181_570358.png) ![图片说明](https://img-ask.csdn.net/upload/201712/12/1513070191_639813.png)
Java小白求救啊!!!
package com.shuai.plane; import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.lang.ref.PhantomReference; import java.util.ArrayList; import java.util.List; import javax.swing.JPanel; //JAVA中游戏面板:JPanel /* * 自定义游戏面板 * 1.写一个类继承JPanel * 2.创建构造方法,初始化游戏面板的属性 * * 画图的步骤 * 1.在类中定义图片,并取名 * 2.在构造方法中调用工具类(Photo)初始化图片 * 3.在画图方法paint中,画图片(paint是专门的画图方法) * */ public class GamePanel extends JPanel{ //创建一个集合,用来存放敌机(敌机的大本营) List<EnemyPlane> arrays = new ArrayList<>(); //创建一个集合,用来放英雄机的弹药 List<HeroFire> HFire = new ArrayList<>(); //创建一个集合,用来放敌机的弹药 List<EnemyFire> EnFire = new ArrayList<>(); //创建英雄机的对象 HeroPlane heroPlane = new HeroPlane(); //创建敌机的对象 EnemyPlane enemyPlane = new EnemyPlane(); //写一个线程,让程序跑起来 //写一个方法,启动线程 public void action() { new Thread() { public void run() { //定义一个变量控制敌机出现的数量 int a = 0; int b = 20; //写一个死循环,让程序一直运行 while(true) { //让敌机出现在面板上 if(a == b) { MakeEP(); a = 0; } //让敌机移动 epMove(); //让英雄机子弹出现在面板上 if(a == 0) { MakeHeroFire(); } //让英雄机的子弹动起来 HeroFireMove(); //让敌机的子弹出现在面板上 //MakeEnemyFire(); //让敌机的子弹动起来 //EnemyFireMove(); //重绘布局(刷新页面) repaint(); try { this.sleep(30); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } a++; } } }.start(); } //写一个方法,让敌机移动 public void epMove() { for(int i = 0; i < arrays.size(); i++) { EnemyPlane enemyPlane = arrays.get(i); enemyPlane.y += 10; if(enemyPlane.y > 800) { arrays.remove(enemyPlane); } //EnemyFire enemyFire = EnFire.get(i); //enemyFire.y += 15; } } //写一个方法,用来生产敌机,并把它放进集合中 void MakeEP() { //创建敌机 EnemyPlane enemyPlane = new EnemyPlane(); //创建敌机的子弹 //EnemyFire enemyFire = new EnemyFire(enemyPlane.x, enemyPlane.y); //把敌机加到大本营中(集合) arrays.add(enemyPlane); //EnFire.add(enemyFire); } //写一个方法,生产英雄机的弹药,并把它放进英雄机的弹药库 void MakeHeroFire() { for(int i = 0; i < arrays.size(); i++) { HeroFire heroFire = new HeroFire(heroPlane.x + 15, heroPlane.y, 0); HFire.add(heroFire); HeroFire heroFire2 = new HeroFire(heroPlane.x + 78, heroPlane.y, 2); HFire.add(heroFire2); HeroFire heroFire3 = new HeroFire(heroPlane.x + 48, heroPlane.y - 20, 1); HFire.add(heroFire3); } } //写一个方法让英雄机子弹移动 public void HeroFireMove() { for(int i = 0; i < HFire.size(); i++) { HeroFire heroFire = HFire.get(i); if(heroFire.dir == 0) { heroFire.x -= 1; } if(heroFire.dir == 2) { heroFire.x += 1; } heroFire.y -= 10; // if(heroFire.y < -heroFire.h) { // HFire.remove(heroFire); // } } } //写一个方法生产敌机的弹药,并放进敌机的弹药库 void MakeEnemyFire() { EnemyFire enemyFire = new EnemyFire(enemyPlane.x, enemyPlane.y); EnFire.add(enemyFire); } //让敌机的子弹动起来 void EnemyFireMove() { for(int i = 0; i < EnFire.size(); i++) { EnFire.get(i).y += 15; } } //定义背景图 BufferedImage bgp; //创建构造方法,初始化面板 public GamePanel(GameFrame gameFrame) { //设置面板的背景 //setBackground(Color.cyan); //通过工具类(Photo)获取图片 bgp = Photo.getImage("/Img/bg1.jpg"); /* * 使用鼠标监听器(固定格式) */ //1.创建鼠标适配器 //这是一个匿名内部类 MouseAdapter adapter = new MouseAdapter() { //2.确定需要的鼠标监听事件 /* * 鼠标监听事件: * 1.mouseMoved();监听鼠标移动事件 * 2.mouseCliked();监听鼠标单击事件(鼠标按下后松开才会被监听,按下不会被监听) * 3.mousePressed();监听鼠标按下去的事件(只要鼠标按下就会被监听) * 4.mouseEntered();监听鼠标移入游戏界面的事件 * 5.mouseExited();监听鼠标移出游戏界面的事件 * * MouseEvevt:鼠标的事件,记录鼠标做的事情 * */ @Override //当鼠标在游戏界面移动时,会触发此方法 public void mouseMoved(MouseEvent e) { //让英雄机跟着鼠标移动,就让英雄机的横纵坐标等于鼠标的横纵坐标 //获取鼠标的坐标(getX();获取鼠标的横坐标, getY();获取鼠标的纵坐标) int mx = e.getX(); int my = e.getY(); //让英雄机移动到鼠标的位置(英雄机移动到鼠标的位置,是英雄机的行为,可以在英雄机中定义方法) //此时英雄机依然不会移动,其实英雄机的坐标已经改变,但是没有把英雄机绘制到新的坐标,需要刷新页面 //heroPlane.move(mx, my); heroPlane.x = mx - heroPlane.w/2; heroPlane.y = my - heroPlane.h/2; //刷新页面,将英雄机绘制到新的页面 //重新调用paint方法(re 表示重新调用) repaint(); } @Override //当鼠标在游戏界面单击时,会触发此方法 public void mouseClicked(MouseEvent e) { System.out.println("~~~~~~~鼠标单击了"); } @Override //当鼠标在游戏界面按下时,会触发此方法 public void mousePressed(MouseEvent e) { System.out.println("!!!!!!!!鼠标被按下了"); } @Override //当鼠标移入游戏界面时,会触发此方法 public void mouseEntered(MouseEvent e) { System.out.println("**************鼠标被移出"); } @Override //当鼠标移出游戏界面时,会触发此方法 public void mouseExited(MouseEvent e) { System.out.println("**************鼠标被移入"); } }; //3.将适配器加入到监听器中(固定格式) addMouseListener(adapter); addMouseMotionListener(adapter); /* * 使用键盘适配器(固定模式) */ // 1.创建键盘适配器 KeyAdapter key = new KeyAdapter() { // 2.确定需要监听的键盘事件 @Override //当键盘按下时,会触发此方法 public void keyPressed(KeyEvent e) { //监听键盘的按键(每一个按键都对应有一个数字) //获取按键的数字 int a = e.getKeyCode(); //KeyEvent.VK_?;是表示指定的按键对应的数字 if(a == KeyEvent.VK_A || a == KeyEvent.VK_LEFT) { if((heroPlane.x -= 10) < -heroPlane.w/2) { heroPlane.x = 0 - heroPlane.w/2; } }else if(a == KeyEvent.VK_D || a == KeyEvent.VK_RIGHT) { if((heroPlane.x += 10) > 600 - heroPlane.w/2) { heroPlane.x = 600 - heroPlane.w/2; } }else if(a == KeyEvent.VK_W || a == KeyEvent.VK_UP) { if((heroPlane.y -= 10) < 0) { heroPlane.y = 0; } }else if(a == KeyEvent.VK_S || a == KeyEvent.VK_DOWN) { if((heroPlane.y += 10) > 800 - heroPlane.h) { heroPlane.y = 800 - heroPlane.h; } } //重绘,将英雄机画到新的位置上 repaint(); /* if(e.getKeyChar() == 'a') { if((heroPlane.x -= 10) < -heroPlane.w/2) { heroPlane.x = 0 - heroPlane.w/2; } } if(e.getKeyChar() == 'd') { if((heroPlane.x += 10) > 600 - heroPlane.w/2) { heroPlane.x = 600 - heroPlane.w/2; } } if(e.getKeyChar() == 'w') { if((heroPlane.y -= 10) < 0) { heroPlane.y = 0; } } if(e.getKeyChar() == 's') { if((heroPlane.y += 10) > 800 - heroPlane.h) { heroPlane.y = 800 - heroPlane.h; } } //重绘,将英雄机画到新的位置上 repaint(); */ } }; // 3.将适配器加入到窗体的监听器中(加到面板的键盘监听器中是没有用的) //可以在创建面板对象时,把窗体对象传过来,然后把键盘适配器添加到窗体的键盘监听器中 //需要面板的构造器添加参数,并指定类型 gameFrame.addKeyListener(key); } //专门画图的方法,重写于JComponent类(JPanel的父类) //画图的方法:(画图时一定要注意图片的尺寸) // 格式: g.drawImage(图片, 横坐标, 纵坐标, 宽度, 高度, 当转换了更多图片是要通知的对象) // 画图时如果不设定图片的大小,图片显示就是原图的大小 @Override public void paint(Graphics g) { //g.drawImage(img, x, y, observer); //横纵坐标是设置图片左上角的坐标,设置图片的大小 g.drawImage(bgp, 0, 0, 600, 800, null); //在paint中画图是有顺序的,先画的在下面一层,先画的会被后画的覆盖 //给敌机画图 //已经把敌机放入集合中了,使用遍历绘制敌机 for(int i = 0; i < arrays.size(); i++) { EnemyPlane enemyPlane = arrays.get(i); g.drawImage(enemyPlane.img, enemyPlane.x, enemyPlane.y, enemyPlane.w, enemyPlane.h, null); } //给英雄机画图 g.drawImage(heroPlane.img, heroPlane.x, heroPlane.y, heroPlane.w, heroPlane.h, null); //把英雄机的弹药画进面板 for(int i = 0; i < HFire.size(); i++) { HeroFire heroFire = HFire.get(i); g.drawImage(heroFire.img, heroFire.x, heroFire.y, heroFire.w, heroFire.h, null); } //把敌机的子弹画进面板中 // for(int i = 0; i < EnFire.size(); i++) { // EnemyFire enemyFire = EnFire.get(i); // g.drawImage(enemyFire.img, enemyFire.x, enemyFire.y, enemyFire.w, enemyFire.h, null); // } } } ![图片说明](https://img-ask.csdn.net/upload/202003/20/1584711414_269752.png)![图片说明](https://img-ask.csdn.net/upload/202003/20/1584711424_683016.png)![图片说明](https://img-ask.csdn.net/upload/202003/20/1584711438_860998.png)![图片说明](https://img-ask.csdn.net/upload/202003/20/1584711451_113820.jpg) ![图片说明](https://img-ask.csdn.net/upload/202003/20/1584711743_593343.png) 图一是运行时操作的画面,如果移动鼠标或者按着键盘不放(应该是飞机移动太快的时候),就会出现下面的画面,会一次出现多个子弹(我就的是鼠标移动时刷新的太快,但是线程里面是限制了时间的,难道是鼠标或者键盘和县线程里面重复刷新了???不会啊,求救啊!!!)。还有,截图代码中,如果把圈出来的判断代码放出来,游戏界面就会出现圈起来的样子(最左边的子弹向上走到一定高度就会变成两个,每次都是在那个高度,并且只有最左边的子弹会变化。)(我就的可能是集合删除后子弹的位置改变了,如果用LinkedList会不会好点?求救!!!)
进行对包含整型变量的list进行操作造成计算错误
问题很简单,可以复现。也可能是太久没接触代码的简单问题。 看了一个短视频,说人类的贫富差距28定律,用计算机随机可以发现是一样的。 想了一下觉得并不难实现,所以想要试一下。 思路是循环创建100个包含name和money字段的对象。 并把它们存进list 取随机坐标的两个对象实现一次money的随机数额的交易。 该交易是单向的,一方减少多少,另一方就增加多少。如果要被减少的一方已经是0,便不操作 代码如下: function start() { var objects=new Array(); for(var i=1;i<101;i++){ var object=new Map() ; object.set('name',i); object.set('money',10); objects.push(object) } //这里是单纯为验证当前数组里money的总和是多少这里输出是正常的10000 var moneysxm=0; for(var w=0;w<objects.length;w++){ moneysxm+=objects[w].get('money') } console.log(moneysxm); for(var z=0;z<$('#f').val();z++){ //随机取两个数 var demo1int=sum(0,99); var demo2int=sum(0,99); //获得随机数字对应的数组对象 var demo1object=objects[demo1int]; var demo2object=objects[demo2int]; //获得对象1的金钱数额 var demo1money=demo1object.get('money'); //获得对象2的金钱数额 var demo2money=demo2object.get('money'); console.log(demo1object.get('name')+'##'+demo1money) console.log(demo2object.get('name')+'##'+demo2money) //当该对象金钱数额为0时不作为 //如果两个对象是同一个时不作为 if(demo1money!=0||demo1int!=demo2int){ //获得符合该对象当前金钱范围内的随机支出数额 var demo1zhichu=sum(1,demo1money); //获得对象1的剩余数额 demo1money-=demo1zhichu; //将对象1剩余数额存入数组 objects[demo1int].set('money',demo1money); //获得对象二获得数额后的总数额 demo2money+=demo1zhichu; //将对象2获得数额后的总数额存入数组 objects[demo2int].set('money',demo2money); } console.log(objects[demo1int].get('name')+'##'+objects[demo1int].get('money')); console.log(objects[demo1int].get('name')+'##'+objects[demo2int].get('money')); } var moneysxm=0; for(var s=0;s<objects.length;s++){ moneysxm+=objects[s].get('money') } console.log(moneysxm); //排序 for(var o=0;o<objects.length;o++){ for(var u=0;u<objects.length;u++){ if(objects[o].get('money')<objects[u].get('money')){ var g=objects[o]; objects[o]=objects[u]; objects[u]=g; } } } setobjects=objects; console.log(setobjects); moneysxm=0; for(var q=0;q<setobjects.length;q++){ moneysxm+=setobjects[q].get('money') } console.log(moneysxm); } function sum (m,n){ var num = Math.floor(Math.random()*(m - n) + n); return num; } #f是一个输入框 输入的是循环次数 ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582578096_764127.jpg) 但是问题这段逻辑感觉并没有什么问题,但是问题却出现了 当主要的对象随机交易这段循环走过之后,money的总量发生了变化,循环次数越多,出错概率越大,越离谱 ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582578268_555800.jpg) 由于之前主要做的后端,之所以用js来试,是因为js不用jdk。但是之前调试前端时也总是出现各种各样的问题,最后我怀疑是又遇到了什么莫名其妙的前端都知道的潜在bug 所以决定用相同的逻辑再用java试一下。 java是强类型的,应该不会再出现这种事情了吧。但是显然,我错了。 public class test1234 { public static void main(String[] args) { ArrayList<persion> arrayList = new ArrayList<persion>(); //创建100个对象 for(int i=1;i<101;i++){ persion persion = new persion(); persion.setName(String.valueOf(i)); persion.setMoney(10); arrayList.add(persion); } for(int z=0;z<1000;z++){ //随机取两个数 int demo1int=sum(0,99); int demo2int=sum(0,99); //获得随机数字对应的数组对象 persion demo1object=arrayList.get(demo1int); persion demo2object=arrayList.get(demo2int); //获得对象1的金钱数额 int demo1money=demo1object.getMoney(); //获得对象2的金钱数额 int demo2money=demo2object.getMoney(); //当该对象金钱数额为0时不作为 if(demo1money!=0){ //获得符合该对象当前金钱范围内的随机支出数额 int demo1zhichu=sum(1,demo1money); //获得对象1的剩余数额 demo1money-=demo1zhichu; //将对象1剩余数额存入数组 demo1object.setMoney(demo1money); //获得对象二获得数额后的总数额 demo2money+=demo1zhichu; //将对象2获得数额后的总数额存入数组 demo2object.setMoney(demo2money); } } int moneysxm=0; for(int s=0;s<arrayList.size();s++){ moneysxm+=arrayList.get(s).getMoney(); } System.out.println(moneysxm); } ![图片说明](https://img-ask.csdn.net/upload/202002/25/1582578602_162708.jpg) java也输出了一些令人害怕的money总量 那么肯定是我犯了什么弱智错误了吧,可无论如何也不知道哪里错了,去网上查,大部分计算错误是由于浮点计算造成的,这个我遇到过,但是整型不涉及二进制的缺陷啊。另外我记得list循环不能对对象操作?好像有这个说法?忘了,
java层面List<Integer>与List<Double>是两个不同的类型
最近在看《深入理解java虚拟机特性》,谈到擦除法实现泛型丧失了泛型思想的优雅!我就想为什么下面这段代码可行 ```java import java.util.ArrayList; public class Test { public static String method(ArrayList<String> list) { System.out.println("invoke method(ArrayList<String> list)"); return ""; } public static int method(ArrayList<Integer> list) { System.out.println("invoke method(ArrayList<Integer> list)"); return 1; } public static void main(String argc[]) { method(new ArrayList<String>()); method(new ArrayList<Integer>()); } } ``` 而这段就不行呢 ```java import java.util.ArrayList; public class Test { public static String doSomething(int a){ return ""; } public static Double doSomething(int a){ return 1.0; } public static void main(String argc[]) { doSomething } } ``` 不是在字节码中都存了他们的特征标签(包含返回值的),既然不同,为什么不能重载呢?于是我网上查了一下,是**因为Java虚拟机规范和Java语言规范不同,两者是分开的** 。
实现操作系统页面置换算法,调用的ListUtils.java中的代码都是什么意思?能否帮忙解释一下原理?
我在用Java做操作系统中的页面置换算法,实现FIFO,CLOCK和LRU这三种算法,在这三个算法实现的过程中,都调用了ListUtils.java,但是我不懂ListUtils.java中的代码是什么意思,导致我其他的代码也看不懂。向各位大神请教一下,能否解释一下ListUtils.java中代码的含义和原理?感谢感谢! 另外在算法中的 Object[] strList = list.toArray(); for(int column = 0; column < list.size(); column++) { FIFOData[column][i+1] = strList[column]; } 这两行代码是什么意思呢?我看在每一个页面置换算法中都有这两行代码,但是我看不懂!麻烦各位大佬帮忙看一下!万分感谢! 下面贴上代码: ListUtils.java ``` package utils; import java.util.List; public class ListUtils { public ListUtils() { } /** * 输出 * @param list 将List转为数组并输出, out: 2, 3, 4 * @return */ public static String listToString(List list){ StringBuffer content = new StringBuffer(); for(int i = 0; i < list.size(); i++){ content.append(list.get(i)); if(i < list.size() - 1){ content.append(","); } } return content.toString(); } /** * 在list中查找是否有str * @param list * @param str * @return */ public static boolean find(List<String> list, String str){ boolean flag = false; for(String lis : list){ if(lis.equals(str)){ flag = true; } } return flag; } /** * 在List中查找是否有String,如果有返回下标, 否则返回 -1 * @param list * @param str * @return */ public static int findIndex(List<String> list, String str) { int index = 0; for(String lis : list) { if(lis.equals(str)) { return index; } index++; } return -1; } public static boolean clockJudge(String[] clock, int index) { if(clock[index].equals("0")) { return true; } return false; } /** * * @param index 下标 * @param clock 时钟 * @param range 当前使用内存块 * @return */ public static int findZero(int index, String[] clock, int range) { while(true) { if(clock[index].equals("0")) { break; }else { clock[index] = "0"; index++; if(index > range-1) { index = Math.abs(range - index); } } } return index; } /** * 在数组中查找是否存在该字符串 * @param obj * @param str * @return */ public static boolean strJudge(Object[] obj, String str) { boolean flag = false; if(obj == null) { return flag; } for(int i = 0; i < obj.length; i++) { if(str.equals(obj[i])) { flag = true; break; } } return flag; } /** * 获取二维数组中同一列的行的长度 * @param str 数据 * @param length 二维数组的列 * @param memory 内存块 * @return * */ public static int findNull(Object[][] str, int length, int memory) { int index = 0; if(str == null) { return -1; } for(int i = 0; i < memory; i++) { if(str[i][length] != null) { index = i; } } return index; } } ``` 在FIFO中调用: ![图片说明](https://img-ask.csdn.net/upload/201912/16/1576503707_674210.png) 在URL中调用: ![图片说明](https://img-ask.csdn.net/upload/201912/16/1576503832_866034.png) 在Clock中调用: ![图片说明](https://img-ask.csdn.net/upload/201912/16/1576503948_604271.png)
java 中有两个数组,循环第二个来匹配第一个数组中的一行代码,一行一行匹配。
不管哪个匹配成功就后面的value1I相乘后相加在一起存到一个list里面。请问这种的java代码怎么写?谢谢! ! ![图片说明](https://img-ask.csdn.net/upload/201607/22/1469171537_859335.png) ![图片说明](https://img-ask.csdn.net/upload/201607/22/1469171547_93158.jpg) ![图片说明](https://img-ask.csdn.net/upload/201607/22/1469171555_4199.png) ![图片说明](https://img-ask.csdn.net/upload/201607/22/1469171561_772090.png)
java 难题 求大侠帮忙。小弟谢过了
求大虾帮帮忙。 由于我底子薄,最好能用java 代码帮我解决下。 各组 ,每组有不同月份的业绩。 一共两个for循环, for (i = 0; i<=组 ; i++) { for(j = 0 ;j< = 月份; j++) { 这里是循环到月份 的业绩。取得到当月业绩。 } } 例如:一共四个组,四个月份。按月份划分, 我要算出每个月的所有组业绩之和。 一组:一月 100 。二月200 。三月300. 四月。400 二组:100 200 300 400 三组:100 200 300 400 四组 同上, 最终算出1月 400 。二月800 。三月1200.。。 最后得出一个list 或者 数组都可以,长度为总月份。里面包含每个月的业绩。可能用到二维数组,或者HashMap 问题: 怎么在上面公式里追加计算。。
(求助帖)mybatis碰到Mapped Statements collection does not contain value for怎么解决
在网上查过答案,命名空间,接口啥的都一致,文件夹也一致,其他的也没啥问题,我朋友和我一样的代码都能运行,我的报错。 具体报错 ``` org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for cn/youwo/dao/UserMapper.findById ### Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for cn/youwo/dao/UserMapper.findById at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:107) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:62) at cn.youwo.dao.UsersMapperTest.findById(UsersMapperTest.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for cn/youwo/dao/UserMapper.findById at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:775) at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:615) at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:608) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:103) ... 25 more ``` 项目文件图 ![图片说明](https://img-ask.csdn.net/upload/202003/31/1585626689_310097.png) UserM和Test两个文件忽略,那是我用注解法写的,可以运行 src/cn/youwo/ bean/Users ``` package cn.youwo.bean; import java.util.Date; public class Users { private int id; private String nickname; private String realname; private String pwd; private String phone; private String email; private String address; private Date createTime; private int type; private String realid; public int getId() { return id; } public void setId(int id) { this.id = id; } ...... } ``` dao/UsersMapper和UsersMapper.xml ``` package cn.youwo.dao; import cn.youwo.bean.Users; import java.util.List; public interface UsersMapper { Users findById(int id); Users findByName(String name); List<Users>findAll(); void add(Users user); void update(Users user); void delete(int id); } ``` ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--!DOCTYPE configuration SYSTEM "mybatis-3-config.dtd" --> <mapper namespace="cn.youwo.dao.UsersMapper"> <select id="findById" resultType="cn.youwo.bean.Users" parameterType="int"> select   id,   nickname,   realname,   pwd,   phone,   email,   address,   create_time createTime,   type,   realid   from n_users where id=#{id} </select> </mapper> ``` mybatis-config.xml ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties resource="jdbc.properties"/> <!--指定什么阶段=开发阶段=测试阶段=生产阶段--> <environments default="development"> <environment id="development"> <!--事务管理器--> <transactionManager type="JDBC"/> <!--数据源--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="cn/youwo/dao/UsersMapper.xml"/> <!--<mapper class="cn.youwo.dao.UsersM"/>--> </mappers> </configuration> ``` test/cn/youwo/dao/UsersMapperTest ``` package cn.youwo.dao; import cn.youwo.bean.Users; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Assert; import org.junit.Test; import java.io.InputStream; import java.text.SimpleDateFormat; public class UsersMapperTest { static final String CONFIG_FILE="mybatis-config.xml"; private static SqlSessionFactory factory; static { SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder(); try { InputStream inputStream = Resources.getResourceAsStream(CONFIG_FILE); factory=builder.build(inputStream); } catch (Exception e) { e.printStackTrace(); } } @Test public void findById(){ SqlSession session = factory.openSession(); Users user = session.selectOne("cn/youwo/dao/UserMapper.findById",2); session.close(); Assert.assertNotNull(user); Assert.assertEquals("匿名",user.getNickname()); Assert.assertEquals("123",user.getPwd()); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); String srt=df.format(user.getCreateTime()); Assert.assertEquals("2020-03-21",srt); } } ```
求助Java算法,这两个算法问题有Java代码实现
1. 从N个元素集合里面随机抽取M个元素(M<N)。 C/C++: void randomChoose(int*data, intn, int *result, int m); Java: void randomChoose(int data[], int result[]); 说明: 1.Data是待抽取的元素集合,n是data的长度,result是抽取的结果,m是结果集的长度。 2.同一个元素不能被反复抽取。 3.每个元素被抽取到的概率必须相同。 4.不需要自己写随机函数,C版本中允许使用rand()函数,java版本中允许使用Random对象 5.算法效率尽可能高 6.必须要有代码注释和算法说明。 例如:data里面的数据是{3, 4, 9}。n = 3, m = 2。此时result的可能输出结果有{3, 4},{3, 9},{4, 9},{4,3},{9, 3},{9, 4},每种可能的输出概率相同。 2.交换链表的奇偶顺序 函数说明: swap函数交换链表第2i和第2i+1个元素(如果都有的话),并返回交换之后的链表。 示例: 交换前链表的顺序 交换后链表的顺序 1→2→3→4→5 ==> 2→1→4→3→5 1 ==> 1 (链表仅含一个元素) 1→2 ==> 2→1 ==> (链表为空) C/C++: 链表节点定义为: struct node { struct node *next; … }; struct node *swap(struct node *list); Java: 链表节点定义为: class Node { public Node next; … } Node swap(Node list) 注意点和要求如下: 0. swap函数返回新的链表指针 1. swap函数要求对节点的指针/引用进行操作(不得创建任何新的链表节点) 2. 不得使用任何库函数/API,如需使用类似功能, 请自行实现 3. 不得将链表转化为其他类型数据结构再进行交换,如数组等
一个关于synchronized的问题,两个微有不同的代码运行却有很大的不同,求解释。
将synchronized放在了不同的位置,运行的结果却大不相同。 第一个代码我能理解看懂,第二个就不懂为什么会是这样了 有没有懂得大神来解释一下 一: ``` import java.util.ArrayList; import java.util.List; public class SynBlockTest02 { public static void main(String[] args)throws InterruptedException{ List<String> list=new ArrayList<String>(); for(int i=0;i<10000;i++){ new Thread(()->{ synchronized (list){ list.add(Thread.currentThread().getName()); } }).start(); } Thread.sleep(1000); System.out.println(list.size()); } } ``` 二: ``` import java.util.ArrayList; import java.util.List; public class SynBlockTest03 { public static void main(String[] args)throws InterruptedException{ List<String> list=new ArrayList<String>(); for(int i=0;i<10000;i++){ synchronized (list){ new Thread(()->{ list.add(Thread.currentThread().getName()); }).start(); } } Thread.sleep(1000); System.out.println(list.size()); } } ```
java中已知两圆坐标及半径,求两圆外切线的坐标
已知两圆坐标及半径,想求两个圆的外切线的四个坐标,不知道用java代码该怎么实现了。下面是我的实现,出来的结果一直不对: ``` public static List<Point> getPointLocations(Point p1, Point p2){ List<Point> pointList = new LinkedList<>(); double k = (double)(p2.y-p1.y)/(double) (p2.x-p1.x);//求出斜率 double c = p1.y-k*p1.x;//求出p1点的常数系数 double k2 = -(1/k);//垂直于这条线的斜率 double c2 = p1.y+p1.x/k;//垂直线的斜率常数系数 int size = 45;//半径 double c3 = size * (Math.sqrt(k*k+1))+c; double c4 = c - size * Math.sqrt(k*k+1); Log.e(TAG, "getPointLocations: k:"+k+" c:"+c+" k2:"+k2+" c2:"+c2+" c3:"+c3+" c4:"+c4); double x1 = (c2 - c3)/(k+k2); double y1 = k*x1+c3; double x2 = (c2 - c4)/(k+k2); double y2 = k*x2+c4; double p2c = p2.y-k*p2.x; double p2c2 = p2.y+p2.x/k; double p2c3 = size * Math.sqrt(k*k+1)+p2c; double p2c4 = p2c - size * (Math.sqrt(k*k+1)); double x3 = (p2c2 - p2c3)/(k+k2); double y3 = k*x3+p2c3; double x4 = (p2c2 - p2c4)/(k+k2); double y4 = k*x4+p2c4; pointList.add(new Point((int)(x1-p1.x),(int)(y1-p1.y))); pointList.add(new Point((int)(x2-p1.x),(int)(y2-p1.y))); pointList.add(new Point((int)(x3-p2.x),(int)(y3-p2.y))); pointList.add(new Point((int)(x4-p2.x),(int)(y4-p2.y))); Log.e("TAG", "getPointLocations: "+" size "+size+" "+pointList.toString() ); return pointList; } ```
java.util.list和org.eclipse.swt.widgets.list无法同时使用
想合并两段代码,但是java.util.list和org.eclipse.swt.widgets.list两个包无法同时使用,怎么办?急,萌新求大神帮忙解决一下,谢谢!
关于我用springcloud做项目的两个疑问
四、总结我的问题 | 1、如最终结果所示,为什么访问 这个地址能从后台拿到需要的数据? ## 按理说它并没有进入到controller的list路径啊! 2、我的项目哪里出了问题,导致没有出现预期的结果呢? +++++ 五、 如果需要看其它地方的代码,请告诉我 麻烦大神指教,谢谢!
java普通代码执行顺序问题?
其实我也是这样想的 不过那两天做js ,在js中调用了其他A方法,然后又调用了B方法由于A方法没执行完就跳到了B,我就想java如果按照顺序执行到a这步,要在循环中调用其他类中的方法 很长时间之后才能处理完,此时a下面的b方法是否会先执行。 ———————————————— 我在A类中调用了B类中的方法export,传入了5个list。 然后分别写了对5个list的操作,在所有操作的最后都分别有一个嵌套循环 for(int i=0;i<x;i++){ for(int j=0;j<y;j++){ fun(a,b,list1); } } 调用了B类的方法fun。 我想确认的是这五个list调用fun的先后顺序是不是就是我写入代码的先后顺序。 是不是除了那些子类父类,静态方法,构造方法等等方面以外,java是顺序执行的?
java对象属性的默认值影响sql查询语句的拼接,该如何处理。
1、问题描述: 想做一个通用的sql查询语句,通过传入对象的属性赋值情况,拼接查询语句。比如Admin类,有int id,String name,int age,boolean isLeader 4个属性,如果给Admin的对象的某几个属性赋值,比如:setAge(32);setName(“张”)。那么语句拼接为select * from admin where age=32 and name like '%张%'。我在拼接时本来想通过属性是否为null,或者是否为空字符来判断是否作为查询条件,但是由于默认值的存在,导致拼接错误。 2、代码 ``` /*** * 约定: * 1、类名与表名对应,表名全小写。 * 2、类属性与列名一致。 * 3、ID列的类属性和列名为=表名(第一个字母小写)+“Id” * * 4、暂不支持联表查询。 *类名:BaseDao * ***/ public <T> List<T> query(T t) throws IllegalArgumentException, IllegalAccessException, SQLException{ StringBuilder sql=new StringBuilder(); StringBuilder whereString=new StringBuilder(); List<Object> parameters=new ArrayList<Object>(); Class clazz=t.getClass(); //获取类名 String classSimpleName=clazz.getSimpleName(); //获取表名 String tableName=classSimpleName.toLowerCase(); //拼接select语句前半部分 sql.append("select * from "+tableName); //获取所有类属性 Field[] fields=clazz.getDeclaredFields(); //遍历所有属性 for(Field field:fields) { field.setAccessible(true); //得到属性值 Object fieldValue=field.get(t); if(fieldValue!=null) { //如果属性值不为null,获取属性名(字段名)。 String fieldName=field.getName(); //判断是否为String类型 if(fieldValue instanceof String) { // 如果是String,判断是否为空字符 if(!("".equals(((String)fieldValue).trim()))) { //不是空字符串,作为where条件,并将参数加入列表。 whereString.append(fieldName+" like ? and "); parameters.add("%"+(String)fieldValue+"%"); } }else if("Integer".equals(fieldValue.getClass().getSimpleName())){ /***判断是否为int,如果int>0,认为参数有效---这个也是为了处理默认值为0的情况,想的办法,但是有时候表里面字段值可能<=0,所以我觉得处理得不**好*/ if((int)fieldValue>0) { whereString.append(fieldName+"=? and "); parameters.add(fieldValue); } }else{ /*其他情况直接作为where查询条件,但是运行发现boolean值默认false,也会直接当成是有效条件,影响条件设置*/ whereString.append(fieldName+"=? and "); parameters.add(fieldValue); } } } //判断是否有有效条件,有的话拼接where语句。 if(parameters.size()>0) { whereString.delete(whereString.length()-5, whereString.length()-1); sql.append(" where "); sql.append(whereString); } System.out.println(sql.toString()); System.out.println(parameters); //连接数据库,查询。 QueryRunner qr=JdbcPool.getQueryRunner(); // return null; return qr.query(sql.toString(), new BeanListHandler<T>(clazz), parameters.toArray()); } ``` 3、测试代码 ``` @Test public void BaseDao() throws Exception, IllegalAccessException { IpAddress ipObj=new IpAddress(); //只设置了一个条件。 ipObj.setIpAddress("192.168.1"); BaseDao bd=new BaseDao(); List<IpAddress> list=bd.query(ipObj); for(IpAddress ip:list) { System.out.println(ip); } System.out.println(list.size()); } ``` 4、结果 ``` //在只设置了一个条件的情况下,拼接出两个查询条件。 select * from ipaddress where ipAddress like ? and isReachable=? [%192.168.1%, false] ``` 5、问题: 请问如何处理这种由于对象基本类型默认值,导致的拼接错误的问题?
JAVA编程,求大神帮忙
有两个连续的List,分别为List1和List2,list2是一个季度的基准表,可以看出每一个季度的最后一天,现在想法是想将list1分段,比如第一段是从20120930到20130630,第二段是20140630到20140630,并且输出list1中连续季度的开始时间和结束时间,比如图中的:第一个开始时间20120930,第一个结束时间20130630;第二段开始时间20140630,第二个结束时间20140630,求各位大神帮忙解决,最好有代码附上。万分感谢 ![图片说明](https://img-ask.csdn.net/upload/201707/24/1500857746_165984.jpg)
关于JAVA中Comparable接口的思考
  JAVA中Comparable接口我们一般是嵌入到某个类中,实现comparaTo方法,用于比较两个类型之间的大小关系。在comparable接口中的源代码的注释上也是这样写的。但是我最近发现了一种新的用法: public static <E> void bubbleSort(E[] list,Comparable<? super E>comparable); 这样将会导致引入一个无对象的comparabe.comparaTo方法,这样comparaTo方法就只能传入一个E对象,没有办法进行两个对象间的比较了,我觉得很奇怪,其实这种用法是要用在什么地方的,请大神指教
java怎么对List集合进行排序验证?
我有一个问题不知道怎么写,就是:有两个List集合List<String>,我现在想要对这两个集合进行验证,1、验证内容是否一致,如果存在不一致的内容则打印不存在的数据。2、验证排序是否一致。不知道怎么写这个方法,我写的代码如下: ![图片说明](https://img-ask.csdn.net/upload/201705/26/1495765663_886879.png) 请教一下大家,我不知道怎么写它。
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我...
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
有网友说:2020年还不懂Spring就放弃Java吧?
前言 Spring这个词对于开发者想必不会陌生,可能你每天都在使用Spring,享受着Spring生态提供的服务,理所当然的用着SpringIOC和SpringAOP去实现老板交给你的功能 ,唔 它就是这样使用的(类声明为Bean组件,然后注入),没错 能完成老板任务,没毛病。如果向你提问什么是Spring,Spring有什么核心功能呢,你会想:这太简单了,Spring就是框架嘛,Spring核...
良心推荐,我珍藏的一些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 插件?怪不得写代码头疼
使用插件,可以提高开发效率。对于开发人员很有帮助。这篇博客介绍了IDEA中最常用的一些插件。
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
最全最强!世界大学计算机专业排名总结!
我正在参与CSDN200进20,希望得到您的支持,扫码续投票5次。感谢您! (为表示感谢,您投票后私信我,我把我总结的人工智能手推笔记和思维导图发送给您,感谢!) 目录 泰晤士高等教育世界大学排名 QS 世界大学排名 US News 世界大学排名 世界大学学术排名(Academic Ranking of World Universities) 泰晤士高等教育世界大学排名 中国共...
《java面试宝典》三 类初始化和类实例化顺序
前言: 社长,4年api搬运工程师,之前做的都是一些框架的搬运工作,做的时间越长,越发感觉自己技术越菜,有同感的社友,可以在下方留言。现侧重于java底层学习和算法结构学习,希望自己能改变这种现状。 为什么大厂面试,更侧重于java原理底层的提问,因为通过底层的提问,他能看出一个人的学习能力,看看这个人的可培养潜力。随着springboot的流行,大部分的开发,起步就是springboot。也...
一份王者荣耀的英雄数据报告
咪哥杂谈本篇阅读时间约为 6 分钟。1前言前一阵写了关于王者的一些系列文章,从数据的获取到数据清洗,数据落地,都是为了本篇的铺垫。今天来实现一下,看看不同维度得到的结论。2环境准备本次实...
工作十年的数据分析师被炒,没有方向,你根本躲不过中年危机
2020年刚刚开始,就意味着离职潮高峰的到来,我身边就有不少人拿着年终奖离职了,而最让我感到意外的,是一位工作十年的数据分析师也离职了,不同于别人的主动辞职,他是被公司炒掉的。 很多人都说数据分析是个好饭碗,工作不累薪资高、入门简单又好学。然而今年34的他,却真正尝到了中年危机的滋味,平时也有不少人都会私信问我: 数据分析师也有中年危机吗?跟程序员一样是吃青春饭的吗?该怎么保证自己不被公司淘汰...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
立即提问