让人瞠目结舌的 Java 代码

  内容转自:

  你见过哪些让你瞠目结舌的 Java 代码技巧?

  原文链接:

  https://www.zhihu.com/question/37760140

  来源:知乎

  1

  曾经不只一次在生产中见过类似这样的代码:

  1. synchronized((Object)1){

  2. // ...

  3. }

  这有很多变种,例如用 Integer.valueOf(1)(Integer)1之类的,那些细节都不重要。重要的是:凭空用一个 Integer对象作为锁对象。

  2

  AbstractComponentBuilderTemplateFactory

  3

  HelloWorld.java

  1. // _ooOoo_

  2. // o8o

  3. // 88" . "88

  4. // ( -_- )

  5. // O = /O

  6. // ____/`'____

  7. // . ' // `.

  8. // / : //

  9. // / _ -:- -

  10. // - ///

  11. // _ ''/''

  12. // .-__ `-` ___/-. /

  13. // ___`. .' /--.-- `. . __

  14. // ."" '< `.____<>_/___.' >'"".

  15. // : `- `.;` _ /`;.`/ - ` :

  16. // `-. _ __ /__ _/ .-` / /

  17. // ======`-.____`-.________/___.-`____.-'======

  18. // `=='

  19. //

  20. // .............................................

  21. // 佛祖镇楼 BUG辟易

  22. // 佛曰:

  23. // 写字楼里写字间,写字间里程序员;

  24. // 程序人员写程序,又拿程序换酒钱。

  25. // 酒醒只在网上坐,酒醉还来网下眠;

  26. // 酒醉酒醒日复日,网上网下年复年。

  27. // 但愿老死电脑间,不愿鞠躬老板前;

  28. // 奔驰宝马贵者趣,公交自行程序员。

  29. // 别人笑我忒疯癫,我笑自己命太贱;

  30. // 不见满街漂亮妹,哪个归得程序员?

  31. packagecom.tianmaying;

  32. importjava.util.Random;

  33. publicclassHelloWorld{

  34. publicstaticvoidmain(String...args){

  35. System.out.println(randomString(-229985452)+' '+randomString(-147909649));

  36. }

  37. publicstaticStringrandomString(intseed){

  38. Randomrand =newRandom(seed);

  39. StringBuildersb =newStringBuilder();

  40. while(true){

  41. intn =rand.nextInt(27);

  42. if(n ==0)break;

  43. sb.append((char)('`'+n));

  44. }

  45. returnsb.toString();

  46. }

  47. }

  4

  第一次知道原来java是支持中文的类名和方法名的

  1. publicclass谁的年龄大{

  2. //------------这就叫代码的可读性---------

  3. publicstaticvoidmain(String[]args){

  4. int张三的年龄=20;

  5. int李四的年龄=21;

  6. boolean张三的年龄是不是比李四的年龄要大=判断甲的年龄大还是乙大(张三的年龄,李四的年龄);

  7. if(张三的年龄是不是比李四的年龄要大==对){

  8. 在控制台输出这么一句话并换行("张三的年龄大");

  9. }elseif(张三的年龄是不是比李四的年龄要大==大错特错){

  10. 在控制台输出这么一句话并换行("李四的年龄大");

  11. }

  12. }

  13. //--------------定义自然语言(把你的注释删掉,改成方法名)--------------

  14. staticboolean=true;

  15. staticboolean大错特错=false;

  16. /**

  17. * 你确定我应该写注释?

  18. */

  19. publicstaticboolean判断甲的年龄大还是乙大(int甲的年龄,int乙的年龄){

  20. return甲的年龄>乙的年龄;

  21. }

  22. publicstaticvoid在控制台输出这么一句话并换行(String要在控制台输出的话){

  23. System.out.println(要在控制台输出的话);

  24. }

  25. }

  输出 -> 李四的年龄大

  5

  1. importjava.lang.reflect.InvocationHandler;

  2. importjava.lang.reflect.Method;

  3. importjava.lang.reflect.Proxy;

  4. publicclassHelloWorld{

  5. publicstaticvoidmain(String[]args){

  6. finalDogdog =newDog();

  7. SingleManman =(SingleMan)Proxy.newProxyInstance(SingleMan.class.getClassLoader(),newClass[]{SingleMan.class},newInvocationHandler(){

  8. @Override

  9. publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{

  10. Methodm =dog.getClass().getMethod(method.getName(),method.getParameterTypes());

  11. Objectresult =m.invoke(dog,args);

  12. returnresult;

  13. }

  14. });

  15. man.say();

  16. }

  17. publicstaticclassDog{

  18. publicvoidsay(){

  19. System.out.println("汪!汪!");

  20. }

  21. }

  22. publicinterfaceSingleMan{

  23. voidsay();

  24. }

  25. }

  6

  大道至简、Java 代码技巧随着“老油条”的演变:

  1. //刚学Java 11行代码

  2. publicStringgetSex(intnum)

  3. {

  4. if(num ==0)

  5. {

  6. return"Girl";

  7. }

  8. else

  9. {

  10. return"Boy";

  11. }

  12. }

  13. //1年后 6行代码

  14. publicStringgetSex(intnum){

  15. if(num ==0){

  16. return"Girl";

  17. }

  18. return"Boy";

  19. }

  20. // 2年之后,开始变懒了 3行代码

  21. publicStringgetSex(intnum){

  22. returnnum ==0?"Girl":"Boy";

  23. }

  7

  1. publicStringdoGenerate(){

  2. StringBuilderstringBuilder =newStringBuilder();

  3. stringBuilder.append("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">n");

  4. stringBuilder.append("<html>n");

  5. stringBuilder.append("<head>n");

  6. stringBuilder.append("<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />");

  7. stringBuilder.append("<title>Generated By RAP</title>n");

  8. stringBuilder.append("<style type="text/css">n");

  9. stringBuilder.append("body {background-color:#E6E6E6; font-size:12px; font-family:Arial,Helvetica,sans-serif;}n");

  10. stringBuilder.append(".div-a .head {background-color: Silver;text-align:center;}");

  11. stringBuilder.append(".div-a .dataType { text-align:center; }n");

  12. stringBuilder.append(".tr-p {height: 25px;}n");

  13. stringBuilder.append("h1, h2, h3 {color:#8CB70E; font-weight:normal; margin:0; text-transform: uppercase;}");

  14. stringBuilder.append(".td-p {border: Gray 1px solid;border-collapse: collapse;padding: 5px;}n");

  15. stringBuilder.append(".table-a {border: Gray 1px solid;border-collapse: collapse;margin: 12px 8px 8px 8px;}n");

  16. stringBuilder.append(".div-a { margin: 12px;}n");

  17. stringBuilder.append(".div-a .head { background-color: Silver; text-align:center; }n");

  18. stringBuilder.append(".div-a .head-name { width: 120px }n");

  19. stringBuilder.append(".div-a .head-validator { width: 80px; }n");

  20. stringBuilder.append(".div-a .head-type { width: 60px; }n");

  21. stringBuilder.append(".div-a .head-remark { width: 200px; }n");

  22. stringBuilder.append(".div-a .head-identifier { width: 140px; }n");

  23. stringBuilder.append(".div-a .name { } n");

  24. stringBuilder.append(".tester-form {margin: 12px; padding:8px; border: 1px gray dashed;} n");

  25. stringBuilder.append(" .item { padding:8px;} n");

  26. stringBuilder.append(" .identifier { color:Red;} n");

  27. stringBuilder.append(" .url { color:Silver;} n");

  28. stringBuilder.append(".div-a .validator { color: Red; text-align:center; }n");

  29. stringBuilder.append(".div-a .real { color: Red; text-align:center; }n");

  30. stringBuilder.append(".div-a .remark { color: Blue; }n");

  31. stringBuilder.append(".div-a .identifier { color: Red; }n");

  32. stringBuilder.append("input, textarea{ border:1px solid #CCCCCC; }n");

  33. stringBuilder.append("</style>");

  34. stringBuilder.append("</head>n");

  35. stringBuilder.append("<body>n");

  36. stringBuilder.append("<h2>ABOUT TEMPLATE</h2>n页面名称: "+page.getName()+"<br />");

  37. stringBuilder.append("页面编号: "+page.getId()+"<br />");

  38. stringBuilder.append("页面介绍: "+page.getIntroduction()+"<br />");

  39. stringBuilder.append("<br /><hr /><br />");

  40. stringBuilder.append("<font color='gray'><H2> RESPONSE PARAMETER LIST</H2></font>");

  41. stringBuilder.append("<div class="div-a">");

  42. stringBuilder.append("<table class="table-a"><tr class="head">");

  43. stringBuilder.append("<td class="head-identifier">变量名</td><td class="head-name">参数意义</td>");

  44. stringBuilder.append("<td class="head-type">参数类型</td><td class="head-identifier">实际传值</td>");

  45. stringBuilder.append("<td class="head-remark">备注</td></tr>");

  46. // print response parameter list

  47. for(Actionaction :page.getActionList()){

  48. if(!action.getResponseTemplate().equals(page.getTemplate()))continue;

  49. for(Parameterp :action.getResponseParameterList()){

  50. stringBuilder.append("<tr>");

  51. stringBuilder.append("<td class="td-p identifier">"+p.getIdentifier()+"</td>");

  52. stringBuilder.append("<td class="td-p name">"+p.getName()+"</td>");

  53. stringBuilder.append("<td class="td-p dataType">"+p.getDataType()+"</td>");

  54. stringBuilder.append("<td class="td-p real">$!"+p.getIdentifier()+"</td>");

  55. stringBuilder.append("<td class="td-p remark">"+p.getRemark()+"</td>");

  56. stringBuilder.append("</tr>");

  57. }

  58. }

  59. stringBuilder.append("</table>n</div>n<div>");

  60. intformCount =1;

  61. // generate action tester

  62. for(Actionaction :page.getActionList()){

  63. stringBuilder.append("<h2> Action: "+action.getName()+" Tester</h2>");

  64. stringBuilder.append("<div class="tester-form"><form name="formTester"+(formCount++)+"" method="post" action=""+action.getRequestUrl()+"">");

  65. stringBuilder.append("<div class="item">请求地址:"+action.getRequestUrl()+"</div>");

  66. for(Parameterp :action.getRequestParameterList()){

  67. stringBuilder.append("<div class="item"><input type="text" width="200px" name=""

  68. +p.getIdentifier()+""/> 变量名: <font color='red'>"+p.getIdentifier()+"</font> 变量意义: <font color='gray'>"

  69. +p.getName()+"</font> 备注: <font color='blue'>"+p.getRemark()+"</font></div>");

  70. }

  71. stringBuilder.append("<div class="item"><input type="submit" class="button" value="Test"/></div>");

  72. stringBuilder.append("</form></div>");

  73. }

  74. stringBuilder.append("</div>");

  75. stringBuilder.append("</body>n");

  76. stringBuilder.append("</html>n");

  77. returnstringBuilder.toString();

  78. }

  用这样的方式拼接 HTML 页面的内容,包括 CSS 也很安分地躺在 Java 的怀中,这一刻我觉得 Java 实现了大一统的目标,与 HTML 和 CSS 完美结合在一起。我其实挺好奇如果再加入 Java 的话会怎么处理。

  8

  1. importjava.lang.reflect.InvocationHandler;

  2. importjava.lang.reflect.Method;

  3. importjava.lang.reflect.Proxy;

  4. publicclassHelloWorld{

  5. publicstaticvoidmain(String[]args){

  6. finalDogdog =newDog();

  7. SingleManman =(SingleMan)Proxy.newProxyInstance(SingleMan.class.getClassLoader(),newClass[]{SingleMan.class},newInvocationHandler(){

  8. @Override

  9. publicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{

  10. Methodm =dog.getClass().getMethod(method.getName(),method.getParameterTypes());

  11. Objectresult =m.invoke(dog,args);

  12. returnresult;

  13. }

  14. });

  15. man.say();

  16. }

  17. publicstaticclassDog{

  18. publicvoidsay(){

  19. System.out.println("汪!汪!");

  20. }

  21. }

  22. publicinterfaceSingleMan{

  23. voidsay();

  24. }

  25. }

  9

  

  10

  

  11

  

  12

  

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
推荐阅读