Java List<Object> 取值???!!!
     List<User> list = (mybatis、Oracle返回值);
     for (User user : list) {
            System.out.println(user.getName());
            System.out.println(user.getAge());
        }

如上例子,可以得到list,可是这样写就是一个实体类就要写一遍(user.getName())这样的,如果这个实体类里面是很多很多,这样就要写很多很多。
想要一个通用的方法,就是不管List里面的object是什么实体类,这个实体类里面包含多少,都能通过遍历获得list,请问有方法吗?有实例可以参考的最好了,谢谢!

6个回答

 import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class PrintObjectList {

    public static void printList(List list) {
        if (list == null || list.size() == 0)
            return;
        for (Object o : list) {
            if (o != null){
                Field[] fields = o.getClass().getDeclaredFields();
                try {
                    for (Field f : fields) {
                        f.setAccessible(true);
                        String name = f.getName();
                        Object value = f.get(o);
                        System.out.println(name + "--" + value.toString());
                    }
                } catch (IllegalAccessException e) {

                }
            }
        }
    }

    public static void main(String args[]){

        List list = new ArrayList();
        list.add(new Example(0, "aa"));
        list.add(new Example(1, "bb"));
        list.add(new Example(2, "cc"));
        list.add(new Example(3, "dd"));

        printList(list);
    }
}


class Example{
    private int i;
    private String s;

    public Example(int i, String s){
        this.i = i;
        this.s = s;
    }

    public int getI() {
        return i;
    }

    public void setI(int i) {
        this.i = i;
    }

    public String getS() {
        return s;
    }

    public void setS(String s) {
        this.s = s;
    }
}
qq_24534807
qq_24534807 回复年岁不吾与: 没删啊,非常感谢!
2 年多之前 回复
zc274456223
年岁不吾与 怎么把第一个回复删了啊,楼主看看这个有没有解决你的问题,有不会的可以交流一下
2 年多之前 回复

可以试着自己写一个反射的函数

额,除非你要执行的都是object的方法,这个USer才可以写成Object

qq_24534807
qq_24534807 那个object只是个举例的,像List<User>、List<Student>等等这样的,只是想用object来代替而已
2 年多之前 回复

如果你只是遍历打印,那就是在实体类重写toString()方法,然后java8环境中用 list.forEach(System.out::print);

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public class PrintObjectList {

public static void printList(List list) {
    if (list == null || list.size() == 0)
        return;
    for (Object o : list) {
        if (o != null){
            Field[] fields = o.getClass().getDeclaredFields();
            try {
                for (Field f : fields) {
                    f.setAccessible(true);
                    String name = f.getName();
                    Object value = f.get(o);
                    System.out.println(name + "--" + value.toString());
                }
            } catch (IllegalAccessException e) {

            }
        }
    }
}

public static void main(String args[]){

    List list = new ArrayList();
    list.add(new Example(0, "aa"));
    list.add(new Example(1, "bb"));
    list.add(new Example(2, "cc"));
    list.add(new Example(3, "dd"));

    printList(list);
}

}

class Example{
private int i;
private String s;

public Example(int i, String s){
    this.i = i;
    this.s = s;
}

public int getI() {
    return i;
}

public void setI(int i) {
    this.i = i;
}

public String getS() {
    return s;
}

public void setS(String s) {
    this.s = s;
}

}

zc274456223
年岁不吾与 这个显示的有问题
2 年多之前 回复

那可以直接用阿里的那个转成JSON的jar包。直接转json

huang931027
IAmObject 其实就是反射的原理。归根结底还是得到属性的名称的
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA中如何给将List<Object obj>增加列?
JAVA中如何给将List<Object obj>增加列? 情况是这样的: 先从数据库中查询结果放到一个list1中,然后数据库中查询另外的结果放list2中,现在需要将list2的按列拼接到list1,如下图,根据大类将list2拼接到list1列的后面。 (实际情况中sql操作比较麻烦,所以只能分开查询再来拼接了) ![图片说明](https://img-ask.csdn.net/upload/201706/29/1498723916_845243.png) 比如现在是list1是4行9列, 需要将list2的4列加到list1中,list1结果变成4行13列
.Net C# xml 转List<object>
现在可以转List<T>,但不知道如何转List<object>.![图片说明](https://img-ask.csdn.net/upload/201911/06/1573032416_52238.png)
!!~帮我看看这个Java小程序!!!
请给我看一下!当小球不动后,我在单击“复位”按钮后可以让小球回到原位,单击事件怎么写!还有如果可以的话帮我加个停止按钮,在单击时可以随时终止小球运动! 谢谢了~~ [code="java"]import java.awt.BorderLayout; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Line2D; import java.util.ArrayList; import java.util.List; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class BallBall extends JFrame { public BallBall() //TwoBall构造 { super("演示"); this.setSize(1000, 750); this.setLocation(20, 20); this.setDefaultCloseOperation(EXIT_ON_CLOSE); Ball jpanel= new Ball(); this.add(jpanel); this.setVisible(true); } class Ball extends JPanel implements ActionListener { private int T; double v1; //上抛初速 5000<v1<11000 double v2; double x21, y21, x22, y22; // 斜抛坐标 double x1,y1; //上抛运动坐标 double g=9.8; int Q=10000; Image a,b; private JTextField time; private JTextField yv; private JTextField xv; private JButton start,back; private Thread thread1; private Thread thread2; public Ball() { this.setBackground(Color.WHITE); this.T=1000; this.v1 = 8000; this.v2=7000; this.x1=200000; this.y1=6200000; this.x21=200000; this.y21=60000000; JPanel Control=new JPanel(); this.add(Control,BorderLayout.NORTH); JLabel TIME=new JLabel("时间"); Control.add(TIME); time=new JTextField("1000"); Control.add(time); JLabel YV=new JLabel(" 上抛初速度"); Control.add(YV); yv=new JTextField("8000"); Control.add(yv); JLabel XV =new JLabel(" 水平方向初速度"); Control.add(XV); xv=new JTextField("7000"); Control.add(xv); start = new JButton("启动"); Control.add(start); start.addActionListener(this); back= new JButton("复位"); Control.add(back); back.addActionListener(this); thread1=new Thread(new Ball1()); thread1=new Thread(new Ball2()); } public void paint(Graphics g) //绘图 { super.paint(g); Baseline(g); //画坐标线 基线 paintUP(g); //上抛运动 paintXP(g); //斜抛 paintXPline((Graphics2D) g); //画斜抛轨迹 this.repaint(); } private void Baseline(Graphics g) { g.setColor(Color.black); //画2条基准线,方便观察 g.drawLine(20, 650, 20, 100); g.setColor(Color.black); g.drawLine(20,650, 880, 650); } private void paintUP(Graphics g) //画小球上抛运动 { g.drawOval((int)(x1/Q),(int)(y1/Q), 25, 25); } private void paintXP(Graphics g) //画上小球斜抛抛运动 { g.drawOval((int)(x21/Q),(int)(y21/Q), 25, 25); } private List<Line2D> towList = new ArrayList<Line2D>(); private void paintXPline(Graphics2D g) //画斜抛运动的轨迹 { towList.add(new Line2D.Double(x21/Q+5,y21/Q,x22/Q,y22/Q));//+4加粗效果 g.setPaint(Color.BLUE); for (Line2D l : towList) { g.draw(l); } } class Ball1 implements Runnable //线程1 控制小球上抛 { int t1=0; public void run() { while (t1<T) { t1+=10; x1 = 30*Q; y1 = 600*Q-v1 * t1+0.5 * g * t1*t1; try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } class Ball2 implements Runnable //线程2 控制小球斜抛 { int t2=0; public void run() { while (t2<T) { t2+=10; x22 =30*Q+v2 * t2; y22 =650*Q-v1 * t2+0.5 * g * Math.pow(t2, 2); x21 = x22; y21 = y22; try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } public void actionPerformed(ActionEvent e) { if(e.getSource()==start) { thread1=new Thread(new Ball1()); thread2=new Thread(new Ball2()); thread1.start(); thread2.start(); T=Integer.parseInt(time.getText()); v1=Integer.parseInt(yv.getText()); v2=Integer.parseInt(xv.getText()); start.setEnabled(false); back.setEnabled(true); } if(e.getSource()==back) { this.repaint(); start.setEnabled(true); back.setEnabled(false); } } } public static void main(String args[]) //main函数 { new BallBall(); } } [/code]
java web list集合取值只有一条数据
一张表 十条数据 正常情况下会在页面显示十条数据, 但是却只显示了一条数据,是什么错啊?为什么会有这样的错误?什么情况下会有这样的错误?? 求解!!
Java>Object>toString()
List list = new ArrayList(); list.add(0, "hello"); list.add(1, "world"); list.add(2, "javase"); Object object = list.get(2); System.out.println(object); // android // 结果为什么不是地址值? ``` ```
Java问题哦!!我的时间段查询,为什么我点击下一页时出现的还是第一页的数据,不理解,在线等哦
else if(StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)){ list = reportService.query(startDate, endDate); //查询出库中的时间 report.set$eq_ctime(list); report.setFirstResult((firstResult - 1) * maxResults); report.setMaxResults(maxResults); Map<String, String> sortedCondition = new HashMap<String, String>(); sortedCondition.put(sortedObject, sortedValue); report.setSortedConditions(sortedCondition); JqGridPageView<Report> reportListView = new JqGridPageView<Report>(); reportListView.setMaxResults(maxResults); //设置页面的最大结果数 // List result=new ArrayList(); // if(((firstResult - 1) * maxResults)>list.size()){ // for(int i=(firstResult - 1) * maxResults;i<firstResult*maxResults;i++){ // result.add(list.get(i)); //// result.add(report); // } // } // List<Report> reportCnList = reportService.queryReportCnList(list); //取得查询出的结果总条数 reportListView.setRows(reportCnList); //设置行数 reportListView.setRecords(list.size()); //设置翻页并设置最大页数 writeJSON(response, reportListView); //返回响应 return ; }
如何使用Java8Lambda表达式对两个List<Object>中的多个元素进行对比筛选
``` List<Student> list = new ArrayList<>(); List<Student> list2 = new ArrayList<>(); Student student1 = new Student(); student1.setAge("一"); student1.setSex(1); Student student2 = new Student(); student2.setAge("一"); student2.setSex(2); Student student3 = new Student(); student3.setAge("三"); student3.setSex(3); Student student4 = new Student(); student4.setAge("四"); student4.setSex(4); // List2 Student student5 = new Student(); student5.setAge("一"); student5.setSex(1); Student student6 = new Student(); student6.setAge("二"); student6.setSex(9); Student student7 = new Student(); student7.setAge("三"); student7.setSex(9); Student student8 = new Student(); student8.setAge("四"); student8.setSex(9); ``` 现在想要的结果是筛选出两个List中age,sex都一样的元素组成一个新List<Student> ``` Set<Student> s = list.stream() .map( user -> list2.stream() .filter(log -> user.getAge().equals(log.getAge())) .filter(log -> user.getSex() == log.getSex()) .findAny() .orElse(user) ) .collect(Collectors.toSet()); ``` 我自己试了下好像并没有卵用
java8,如何根据条件合并两个List<HashMap>
假设两个List<HashMap> map1和List<HashMap> map2, map1的key有key1,key2,key3,key4,key5, map2有key1,key2,key6,key7,key8, 现需要以key1和key2为依据,若两者相等则将map1和map2中的元素合并为新的List<HashMap> map3, java8中是如何实现的?
List<实体>怎么转换成List<Object[]>
我用Mybaits写的SQL返回的是一个List<实体>,可是怎么能把这个实体转换成List<Object[]>类型啊
如何通过EL表达式拿去List<Object>数组中的不同List中所包含的值?
``` protected void selectArtclesByVagueType(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int VagueTypeId = 1; if(request.getParameter("VagueTypeId") != null){ VagueTypeId = Integer.parseInt(request.getParameter("VagueTypeId")); } List<Artcle> ArtcleList = artcleBIZImp.selectArtclesByVagueType(VagueTypeId); List<User> userList = new ArrayList<User>(); for(int i = 0;i<ArtcleList.size();i++){ try { User user = userBIZImp.selectUserByUserId(ArtcleList.get(i).getUser().getUserId()); userList.add(user); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } List<Object> list = new ArrayList<Object>(); list.add(ArtcleList); list.add(userList); request.setAttribute("list",list); request.getRequestDispatcher("index.jsp").forward(request, response); } ``` 如果直接使用 ${list.ArtcleList.值} ${list.userList.值} 的方式取值会报错,报错信息如下 ``` 严重: Servlet.service() for servlet ArtcleActionServlet threw exception java.lang.NumberFormatException: For input string: "ArtcleList" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:447) at java.lang.Integer.parseInt(Integer.java:497) at javax.el.ListELResolver.coerce(ListELResolver.java:166) at javax.el.ListELResolver.getValue(ListELResolver.java:51) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54) at org.apache.el.parser.AstValue.getValue(AstValue.java:123) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:182) at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:919) at org.apache.jsp.index_jsp._jspx_meth_c_005fforEach_005f0(index_jsp.java:1218) at org.apache.jsp.index_jsp._jspService(index_jsp.java:760) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at com.takun.action.ArtcleActionServlet.selectArtclesByVagueType(ArtcleActionServlet.java:65) at com.takun.action.ArtcleActionServlet.service(ArtcleActionServlet.java:31) at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619) ```
请教关于Redis缓存Java的List问题?
假设我有个List<User>这样的list,我是直接把list序列化成字符串存进redis更好,还是存user的id集合List<String>然后取出来序列化之后再单个根据id去redis取更好?主要想知道哪个效率会更高,还是具体会和多少条数据实体类的属性有关系?
session 放了一个List<Map<String,Object>> 怎样取值
``` @RequestMapping("/usercentersava.xhtml") @ResponseBody public List<Map<String,Object>> sava(HttpServletRequest request) throws IllegalAccessException { UsercenterEntity usercenter=new UsercenterEntity(); List<Map<String,Object>> list= (List<Map<String, Object>>) request.getSession().getAttribute("usercenter"); for (Map<String, Object> stringObjectMap : list) { System.out.println(stringObjectMap); } return baseServiceUtil.query4list(usercenter); } ```
将map对象转换为list时报错'list' object is not callable?
代码如下: ``` def fun(x): return x ** 2 your_list = [1,2,3,4,5,6,7,8,9,10] list(map(fun,your_list)) ``` 报错为:'list' object is not callable
java List<Map<String, Object>> 转成Map<String,List<String>>
List<Map<String, Object>> map = new ArrayList<Map<String,Object>>(); Map<String, Object> mapList = new HashMap<>(); mapList.put("xxx", 1); Map<String, Object> mapList2 = new HashMap<>(); mapList2.put("xxx", 2); Map<String, Object> mapList3 = new HashMap<>(); mapList3.put("xxx", 3); map.add(mapList2); map.add(mapList3); map.add(mapList3); 转为Map<String,List<String>> 键是xxx,值是1,2,3
java序列化实例类,在反序列化后,时间会变成null
问题RT ![图片说明](https://img-ask.csdn.net/upload/201912/31/1577759957_707429.jpg) ![图片说明](https://img-ask.csdn.net/upload/201912/31/1577759976_357376.jpg) ``` /** * 序列化 list 集合 * * @param list * @return */ public static byte[] serializeList(List<?> list) { if (list == null || list.size() == 0) { return null; } ObjectOutputStream oos = null; ByteArrayOutputStream baos = null; byte[] bytes = null; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutputStream(baos); for (Object obj : list) { oos.writeObject(obj); } bytes = baos.toByteArray(); } catch (Exception e) { e.printStackTrace(); } finally { close(oos); close(baos); } return bytes; } ``` ``` //反序列化代码 if (bytes == null) { return null; } List<Object> list = new ArrayList<Object>(); ByteArrayInputStream bais = null; ObjectInputStream ois = null; try { // 反序列化 bais = new ByteArrayInputStream(bytes); ois = new ObjectInputStream(bais); while (bais.available() > 0) { Object obj = (Object) ois.readObject(); if (obj == null) { break; } list.add(obj); } } catch (Exception e) { e.printStackTrace(); } finally { close(bais); close(ois); } return list; ```
servl无法传递list到jsp!!
我用的是setAttribute和getAttribute! servlet: request.setAttribute("restaurant_info",restaurant_info); response.sendRedirect("../index.jsp"); Jsp: List<String> restaurant_info=(List<String>)request.getAttribute("restaurant_info"); restaurant_info在servlet中系统输出的结果算是: [好味道茶餐廳, 凍奶茶, 小泉居, 咖喱雞, 紅樹林, 燒味, 麥當勞, 漢堡包, 小熊貓, 吉列豬扒, 全球居, 咖喱雞, 食通天, 葡國雞] 但是在jsp就是null! console也没有报错!哪里出错了?
Java 数组分组问题!!!高手请进!
List<String> 数据为 [11234,121,112,17,12,11] 根据包含关系( indexof(x,0) )分组数据结果为: [11234,112,11] [121,12] [17] 用java怎么实现这样的分组啊,谢谢高人了!!
List<Object> 根据包名+类名 转换成相应的List<Bean>
List<Object> 通过序列化将List<Bean>写入到二进制文件中,另一个程序需要根据二进制文件和包名+类名将文件中的数据读取出来。objectInputStream = new ObjectInputStream(freader); List<Object> data_list = (List<Object>)objectInputStream.readObject(); 怎么将 List<Object> 转换成相应的List<Bean>啊?读取的时候就报类未找到。请大神给解决一下啊,困扰一天了
java和c使用socket通信时,发送报文的问题
问题详细描述:java是客户端,c语言是服务端。程序的目的是java发送报文过去 ,服务器能够识别。但是c语言写的服务端是很多年前的,目前已经无法对服务端作任何修改,c接收报文是用char定义的,报文是定长报文,不够的用空格补全,格式为包头+报文长度+报文内容(1字节+4字节+300字节),包头是6,报文长度是0300,报文内容由下图的结构体定义。![图片说明](https://img-ask.csdn.net/upload/201912/23/1577087403_15537.png)java使用getBytes()方法,获取了字节数组,发送过去后服务端报错,报错信息为包头错误,后来发现那边接收的是6对应ASCII码,请问这应该如何解决呢?java测试代码如下 ``` package Demo01; import java.io.BufferedOutputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class send { public static void main(String[] args) { try { iSend("172.33.xx.xx",10000); } catch (IOException e) { e.printStackTrace(); } } public static void iSend(String IP,int PORT) throws IOException{ String baotou = "6"; String blen= "0300"; String id = "0001"; String sysid = "1111"; String sysname = "disk"; String type = "11"; String level = "1"; String content = "sendcontent"; Socket socket = null; BufferedOutputStream bos = null; String message = "" ; List <Object> messList = new ArrayList(); messList.add(baotou); messList.add(blen); messList.add(id); messList.add(sysid); messList.add(sysname); messList.add(type); messList.add(level); messList.add(content); List <Object> messList2 = new ArrayList(); messList2.add(changeString(messList.get(0).toString(),1)); messList2.add(changeString(messList.get(1).toString(),4)); messList2.add(changeString(messList.get(2).toString(),4)); messList2.add(changeString(messList.get(3).toString(),8)); messList2.add(changeString(messList.get(4).toString(),16)); messList2.add(changeString(messList.get(5).toString(),16)); messList2.add(changeString(messList.get(6).toString(),16)); messList2.add(changeString(messList.get(7).toString(),240)); for(Iterator<Object> it = messList2.iterator();it.hasNext();){ message += it.next(); } System.out.println("报文为:"+message); try { socket = new Socket(IP,PORT); bos = new BufferedOutputStream(socket.getOutputStream()); byte [] buf = message.getBytes(); bos.write(buf,0,buf.length); bos.flush(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(socket != null){ socket.close(); } } } /** * *设置定长报文,用空格补齐 * @param object 报文集合 * @param len 报文的规定长度 * @return */ public static String changeString(String list,int len){ for(int ListLen = list.length();ListLen < len;ListLen++){ list +=" "; } return list; } } ```
Kafka实战(三) - Kafka的自我修养与定位
Apache Kafka是消息引擎系统,也是一个分布式流处理平台(Distributed Streaming Platform) Kafka是LinkedIn公司内部孵化的项目。LinkedIn最开始有强烈的数据强实时处理方面的需求,其内部的诸多子系统要执行多种类型的数据处理与分析,主要包括业务系统和应用程序性能监控,以及用户行为数据处理等。 遇到的主要问题: 数据正确性不足 数据的收集主要...
volatile 与 synchronize 详解
Java支持多个线程同时访问一个对象或者对象的成员变量,由于每个线程可以拥有这个变量的拷贝(虽然对象以及成员变量分配的内存是在共享内存中的,但是每个执行的线程还是可以拥有一份拷贝,这样做的目的是加速程序的执行,这是现代多核处理器的一个显著特性),所以程序在执行过程中,一个线程看到的变量并不一定是最新的。 volatile 关键字volatile可以用来修饰字段(成员变量),就是告知程序任何对该变量...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
GitHub开源史上最大规模中文知识图谱
近日,一直致力于知识图谱研究的 OwnThink 平台在 Github 上开源了史上最大规模 1.4 亿中文知识图谱,其中数据是以(实体、属性、值),(实体、关系、实体)混合的形式组织,数据格式采用 csv 格式。 到目前为止,OwnThink 项目开放了对话机器人、知识图谱、语义理解、自然语言处理工具。知识图谱融合了两千五百多万的实体,拥有亿级别的实体属性关系,机器人采用了基于知识图谱的语义感...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
微信支付崩溃了,但是更让马化腾和张小龙崩溃的竟然是……
loonggg读完需要3分钟速读仅需1分钟事件还得还原到昨天晚上,10 月 29 日晚上 20:09-21:14 之间,微信支付发生故障,全国微信支付交易无法正常进行。然...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问