Java语法笔记

时间:2023-02-22 17:32:26

目录

知识点

不支持

恶心事

与C#的区别

组件

学习资料

母版页

知识点

静态方法,即可以在类上被调用,也可以在实例对象上被调用。

Java类 先执行静态构造函数,再执行静态方法或静态字段,所以如果在类的静态构造函数中,执行了该类的静态方法,则会报错。因为类还没有初始化,不能调用类方法,这一点和C#不同。以下代码报错:

public class obj{

    static{
Init();
}
public static void Init(){}
}

使用 import static 包.类.*; 可以直接使用该类下的方法。

类上可以定义代码段,在执行完构造函数之后执行。如:

public class test{
{system.out.println("OK");}
{system.out.println("22");}
}

一些考点: http://www.cnblogs.com/lanxuezaipiao/p/3371224.html

getClass().getClassLoader() 根在哪?

在 target/@/Web-inf/classes

可能通过:this.getClass().getClassLoader().getResource("").getPath() 取得。

Jdbc

executeQuery 是执行并返回结果

getResultSet  可以多次调用,仅一次执行。

ResultSet.getInt(index) 中的 index 是从 1 开始的。

JdbcTemplate

用法: http://www.cnblogs.com/Fskjb/archive/2009/11/18/1605622.html

org/springframework/dao/DataAccessException:  http://blog.sina.com.cn/s/blog_55fc875c0100hfdm.html

需要的Jar包:

spring-tx-4.3.0.RELEASE.jar

mysql-connector-java-5.1.39-bin.jar

mysql-connector-java-5.1.30.jar

sqljdbc.jar

Kotlin代码:

        Class.forName("com.mysql.jdbc.Driver");
var s = DriverManagerDataSource("jdbc:mysql://127.0.0.1:3306/ptr", "root", "");
//s.setDriverClassName("com.mysql.jdbc.Driver")
//var s = org.springframework.jdbc.datasource.DriverManagerDataSource("jdbc:microsoft:sqlserver://localhost:1433;databasename=MyMvcApp", "sa", "sa@")
//s.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
var d:JdbcTemplate = JdbcTemplate(s) var list = d.queryForList("select * from P_User where LoginName=?","SysAdmin");

不支持

1. 不支持分部类。

2. 不支持参数默认值

3. 不支持 扩展方法

4.  String.Join 还是自己写吧。

5.

6. 不支持索引器, 把它改为一个方法, get(int index) 吧。List也是这么干的。

7. 没有var

9. 没有扩展方法

10. 没有属性,所以不能这样写: new Node(){ Name = "abc"}

11. 不支持运算符重载,Java作者说是不喜欢,其实是他不会。

12. 关于泛型,Java并不支持真正的泛型,作者喜欢泛型,但是水平太低,不会实现,所以仅仅做了个样子: http://blog.sina.com.cn/s/blog_44c1e6da0100cus3.html

  ava中泛型实现使用的擦除机制,为类型参数传入类型并不导致新类型出现,即传入了类型参数后在运行时仍然完全不知道类型参数的具体类型!

13. 定义方法可以抛出异常,调用方法必须使用 try catch ,或也抛出同样的异常。 好烦!

14. Java 的枚举,不能和 int 相互转换, 比如它不能从 任意一个数字转为枚举,它是一个有限集合。而C#的枚举之间可以相互运算,如 | & 等。

14.

恶心事

先记录一下我问的问题和经常听到的回答:

问:我想实现C#的  MyObject.As<Int>("22"); Java如何实现?    MyObject.<Integer>("22",Integer.class) 是多一个参数的。

答:你为什么那样做? 你不应该那样实现,应该针对每个类型定义函数。

析:

先弄明白一件事,是Java不能实现!

好像这是很多人的逻辑,不能实现的东西,从另一方面去说实现方案不对。 一个软件实现不了的功能,就可以说,这个功能是不合理的。

要让猪上树,先把树砍到猪能上去的高度。要让Java去实现功能,先把功能砍到Java能实现的程度。

1. ==

Java 判断字符串相等不能使用 == , 而必须使用 equals

http://www.cnblogs.com/yjmyzz/archive/2012/12/10/2812079.html

2. 配置文件

配置文件不能编译,所以大量依赖就很恶心了,配置阶段谁也不敢保证它是正确的。万一解析程序更新了呢。万一 Spring9.0有了新的配置文件架构呢。

配置文件做为一个中间数据载体(可以看做是数库),应该提供一个配置工具(微软有一个web.config配置工具)!或者最起码,提供一个全部配置的,且最优化的例子。

3. HttpServletResponseWrapper

如果静态资源进入Filter,有的时候,会是莫名其妙的 isCommited() 为 true ,为 true 之后, 就不能再进行输出了。

解决办法:通过utl-pattern 阻止静态资源进入Filter

4. 各种包的不稳定,返回Json 406错误

http://blog.csdn.net/a4307515/article/details/42394869

5. 相同的Controller报错

两个包名下,同名的类名, Spring运行时出错: Servlet.init() for servlet mvc-dispatcher threw exception

  解决方法:

  1. 把类名改为: Admin_Home , Open_Home,保证不重名。

  2. 把 @Controller 属性的构造函数里设置 Controller名称。保证里面的名称不重名。

6. (String[]) toArray()报错

  toArray()时,返回的是 Object[],强转会出错。Java推荐使用带参数的 toArray(),但参数时,必须传入一个有空间大小的数组,toArray方法进行填充并返回(我想骂)

7. 依赖异常

  Java有很多方法,并不会返回 null ,而是抛出异常!

  Class.getField ,如果没有该列,则报: NoSuchFieldException ,而不是返回null

  如果函数抛出异常,需要要函数上显式进行定义。 我去年买了个表,Java设计者。

  我想:在定义函数时不定义抛出异常,但出现异常的时候还要抛出异常!!!

  只好对异常规范进行修改。

  想抛出异常的时候,运行一个函数 Throw("异常消息");  Throw方法产生一个运行时异常。

 private static class  MyException extends RuntimeException {
public MyException(String msg) {
super(msg);
}
} public static void Throw(String msg){
System.out.println("自定义运行时异常:"+ msg);
} public static void Throw(Exception e){
System.out.println(e.getMessage());
MyException exp = new MyException(e.getMessage());
exp.setStackTrace(e.getStackTrace());
throw exp;
}

在catch 完异常之后, 调用 MyObject.Throw(e); 如下:

public static void Do()
{
try {
delete = (ActionClipBase) this.getClass().newInstance();
} catch (Exception e) {
MyObject.Throw(e);
}
}

这样,抛出运行时异常来达到停止代码执行的目的。

8. static函数中不能使用 return

9. 所有类,必须在某个包下。

源码根文件夹,下面不能有类。

如: java做为Sources Root,下面只能是文件夹。不能是类。

10. int[]  Integer[]

虽然 int 和 Integer 可以相互转换,但是 数组不能相互转换。

ArrayUtils.toPrimitive

11. jackson

readValue(jsonString, clazz)

如果 classz 是 继承自 HashMap 的,可以使用字典,但是,如果classz有public 字段, 则不能被认为是字典。Fuck!

12.  isAssignableFrom

父类.isAssignableFrom( 子类 )

和正常人的逻辑不一样 。

13. Cannot write output after reading input.

HttpURLConnection 的坑很多, 问题很多,很多限制。
报上面的错误, 是因为, HttpUrlConnection 要么写,要么读, 不能先读再写。 比如:
if ( conn.contentType.indexOf("json") > -1){
jsonData = ...;
  conn.outputStream.writeJson( jsonData );
} 就会报错。 因为 conn.contentType 是 读操作。

13. Mvc对象映射死板

Javascript 对象和字典是相同的写法:  var p = {} , 而字典和数组也有相同的写法. 客户端使用 Content-Type : urlencoded , 对应写法:

  1.  对象.属性=值

  2. 字典[键]=值

  3. 数组[索引]=值

客户端编写统一处理函数,把 JSON 转换为 url查询参数时, 只能使用一种选择, 忽略掉字典, 服务器应该自动映射,如果 对象.属性的写法, SpringMvc 在使用Map参数接收会出错. 说明SpringMvc对象映射不够智能.


与C#的区别

1. List是一个接口,使用: LinkedList<T>

2. 导入常用包:

import java.util.*;

3. Java8的 lambda表达式,需要使用 final 修饰表达式内的变量。

final Object[] ret = {null};

.lambda(o ->{
ret[0] = true;
}); //使用 ret[0]
list.removeIf(x-> x.startsWith( Prefix));

教程:

http://www.importnew.com/14841.html

http://my.oschina.net/benhaile/blog/177148

Lambda基本招式:

  Collection<>

  .stream()

  .map()

  .filter()

  .collection()

4. substring, 第二个参数:C#表示Length, Java表示EndIndex。   转换: EndIndex = StartIndex + Length

5. 把 String.Empty 换成 “”

6. Array和List区别很大,函数最好返回List

7. foreach =>   for( int i : list)

8. 数组 Length =》 .length()   ,尽量避免使用数组, 多使用 List,List有更多方法。

9. List []  => .get(index)

10. 代码自动提示 : Ctrl+ Shift + 空格

11. 值类型与引用类型有很大使用上的区别,值类型都有一个引有类型和它对应。 int => Integer , boolean=>Boolean ,这个设计,我也是醉了。

12. HttpContext.Current.Item[] => request.setAttribute(key,val) ,  request.getAttribute(key)

13. Action =>   Consumer 一个参数 , BiConsumer 二个参数 。

14. Function => Supplier 没有参数, Function 一个参数 , BiFunction 两个参数

  参考:http://www.java3z.com/cwbwebhome/article/article20/200101.html?id=4970

15. Server.MapPath => ServletContext.getRealPath

16. Java 的静态构造函数写法非法简洁。只需要一个 static 即可。

17. C# 之于 ThreadStatic, Java 之于 ThreadLocal  : http://my.oschina.net/doctor2014/blog/396162

18. Switch 枚举中 case 不必写枚举名, 这一点比 C# 好。

19. C# Attribute 使用 []修饰, Java使用 @

20.  C#可以定义两个类: List<T> : List   ,而Java里,只需定义  List<T> , 使用时,可以使用  : List<T> ,List ,List<?>三种方式

21. C# 的 lock  => Java 的  synchronized , ReentrantLock 。  : http://www.cnblogs.com/dolphin0520/p/3923167.html

  优先使用 ReentrantLock

22.  Java的一切异常是出错的,比如强制类型转换,而 .Net 不会出错,从这一点上来说, .Net 性能会更高。

  if( Obj instanceof  String){

    String strVal = (String) Obj;

    ...

  }

23. C# Web.config 自定义 AppSettings  => Bean 属性注入。 字段怎么注入?!

24. C# : Application_Start 需要一个 Global.asax 文件。 而Java则需要 实现  WebApplicationInitializer 的类,不需要配置。可以有多个:

http://docs.spring.io/spring/docs/4.0.0.RELEASE/javadoc-api/

25:

C#是语法更新快,类库稳定。可以向上升级。

Java是语法稳定,类库不稳定。类库的作者不必对之前的版本负责,所以不必兼容之前的版本。就导致两个小版本的Jar包不能替换使用。可能会出现编译不报错,但是运行报错的情况,也可能实现机制改变,而导致编译不通过。

26. Java里到处是接口。你得到的永远不是实现。

比如你得到 Xml的 Node 对象,但是Node对象没有 getAttribute(name) 方法, 实现DeferredElementImpl 里有,但是你不能用。因为这个方法不是接口的方法,需要你转换为 DeferredElementImpl 才能使用, 但是真保不齐下个版本的实现还是他。

就像: 通过一个方法,你提到一个杨过的老婆,老婆是个接口,具体实现叫 小龙女, 但是下个版本,你得到的还是杨过的老婆,但是叫 李莫愁。

27. Function 做为函数参数时,即使返回值不同,也不能重载。如:

    public SelectClip<T> Select(Function<T,ColumnClip >  colsFunc){
ColumnClip cols = null;
if( colsFunc == null){
cols = colsFunc.apply(this.LambdaHelperModel);
}
return Select(cols);
} public SelectClip<T> Select(Function<T,ColumnClip[]> colsFunc){
ColumnClip[] cols = null;
if( colsFunc == null){
cols = colsFunc.apply(this.LambdaHelperModel);
}
return Select(cols);
}

会报错。

28 . Java 返回Json时,会把 isAdmin=false ,修改为 admin=false ,这个设计太SB了。

29 . Java MongoDB,会把  id 字段,转换为 _id 字段, 包含集合中的id ,这个设计也太 SB了。

30.  基元类型虽然没有继承 Serializable , 但就是 Serializable

组件

Spring用法:

1. 实现C# 的 using ,使用 import 包名.*;

2. 使用 Response,在action参数中添加: HttpServletResponse ,同理还有: HttpServletRequest 。

  获取HttpContext.Current 上下文: http://blog.csdn.net/yanjiaye520/article/details/26602679

  需要在

<!-- WEB.XML中配置相关的监听机制 -->
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>

使用:

//在任意的class下通过以下方法获取到HttpServletRequest
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

3. 修改编码为 UTF8 , 修改 Tomcat 的编码为 UTF8  http://www.it165.net/admin/html/201503/5139.html

4. Project Structure 里,修改Modules里的Spring项目的 Language Level为 8 : Lambda 时,编译报错。

5. URL大小写: http://blog.csdn.net/k_scott/article/details/8254932

6. 返回的 Action: http://www.360doc.com/content/14/0309/19/834950_359081989.shtml

7. 输出Filter,参考:

  http://blog.csdn.net/wubai250/article/details/8552960

  http://www.cnblogs.com/lhj588/archive/2012/07/06/2579188.html

  url-pattern 设置:

    *.jsp 时不起作用

    / 仅Mvc页面程序处理!!!

    *包含:.jsp , *.js , *.css 等,太烦了。

对指定路由使用Filter

    <!-- HTML特殊字符过滤器-->
<filter>
<filter-name>HTMLFiter</filter-name>
<filter-class>com.cv.mvc.common.helper.HttpContext</filter-class>
</filter>
<filter-mapping>
<filter-name>HTMLFiter</filter-name>
<url-pattern>/Hr/*</url-pattern>
<url-pattern>/Person/*</url-pattern>
<url-pattern>/Open/*</url-pattern>
<url-pattern>/Sys/*</url-pattern>
<url-pattern>/Test/*</url-pattern>
</filter-mapping>

  在Filter中,也可以设置当前的 Request 和 Response

public class HttpContext implements Filter {
private ServletContext servletContext = null;
private HttpServletRequest myRequest = null;
private MyHttpResponseWrapper myResponse = null; public static ThreadLocal<HttpServletRequest> Request = new ThreadLocal<HttpServletRequest>(); public static ThreadLocal<HttpServletResponse> Response = new ThreadLocal<HttpServletResponse>(); @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { myRequest = (HttpServletRequest) request;
myResponse = new MyHttpResponseWrapper((HttpServletResponse) response); Request.set(myRequest);
Response.set(myResponse);
  }
public static HttpServletRequest getRequest(){
if( Request == null || Request.get() == null){
System.out.printf("Web.xml没有配置该路由,导致Request为空,将从RequestContextHolder返回Request对象!");
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
}
return Request.get();
}   public static HttpServletResponse getResponse(){
return Response.get();
} public static HttpSession getSession(){
return getRequest().getSession();
}
}

7.1使用:HandlerInterceptorAdapter   http://blog.csdn.net/liuwenbo0920/article/details/7283757

8. 访问静态资源,Web的根在哪?

  根:Project Structure—》Modules -》 Web -》 Web Resource Directories -> 有 《Path Relative To Deployment Root》 一项,该值应该是  “/" , 左边的 Web Resource Directory 就是根:默认指向 main\webapp

  由于在 web.xml中,指定了所有的页面程序程序,所以需要单独设置静态资源的处理程序。: http://www.cnblogs.com/rollenholt/archive/2012/12/26/2834209.html

  如下设置:

    <servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping> <servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

如果设置了 Filter,则静态资源也会进入到Mvc-Dispatcher。防止静态资源进入Filter

    <filter>
<filter-name>HTMLFiter</filter-name>
<filter-class>BaseMvc.MyResponseFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HTMLFiter</filter-name>
<url-pattern>/Admin/*</url-pattern>
<url-pattern>/Open/*</url-pattern>
<url-pattern>/Sys/*</url-pattern>
</filter-mapping>

9. HttpServletResponse 有  setStatus 方法,但是没有 getStatus 方法,有文章说: http://blog.01000.name/http-servlet-response-status/

  解决方案:http://yingzhuo.iteye.com/blog/1844714   +   http://www.iteye.com/problems/41733

  在自己的包装器里,重写 setStatus :

public class MyHttpResponseWrapper extends httpServletResponseWrapper {
int httpStatus;
@Override
public void setStatus(int sc) {
httpStatus = sc;
super.setStatus(sc);
} public int getStatus() {
return httpStatus;
}
}

https://github.com/sitemesh/sitemesh3

10. @ResponseBody 表示返回内容不包含视图,所有内容都在函数中处理了,相当于.Net 里的 Content() ,或 Json()。

11.   getContextPath、getServletPath、getRequestURI的区别

http://my.oschina.net/xsh1208/blog/177522

12. 如何实现XA式、非XA式Spring分布式事务:  http://www.importnew.com/15812.html

Json

公认: SmartJson 最快:  https://github.com/netplex/json-smart-v2

学习资料

1. Spring Controller:  http://my.oschina.net/hcliu/blog/396887

2. Spring源码: http://www.cnblogs.com/xing901022/p/4178963.html

3. HttpServletResponseWrapper: http://www.mzone.cc/article/260.html

4. 进阶: http://blog.csdn.net/it_man/article/details/7556903

5. Sitemesh3 : http://www.cnblogs.com/luotaoyeah/p/3776879.html

6. 反射 : http://www.cnblogs.com/penghongwei/p/3300084.html

  判断声明类型: getModifiers :  http://blog.csdn.net/zhou8622/article/details/44038699

7. BasicDataSource: http://my.oschina.net/DeanCTO/blog/323567

8. Jdbc:

http://www.cnblogs.com/wing011203/archive/2013/05/12/3073838.html

http://www.cnblogs.com/xinsheng/p/3898107.html

http://www.codingdiary.com/developers/developers/diary/javaapi/java/sql/SampleCode/ResultSetfindColumnExampleCode.html

9. Web中获取路径: http://blog.csdn.net/poplong/article/details/9734701

自制母版页

目录结构webapp(Tomcat根)

webapp(Tomcat根)
web-inf
pages(Spring根)
web.xml
Admin...(Mvc_Area)
Home (Mvc_Controller)
Index.jsp
     Layout(母版页位置)
    Admin.jsp(对应Mvc_Area的母版页)
    Open.jsp (另一个Mvc_Area的母版页)
Res(资源源文件)
R(生成的资源文件)

子页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<layout>
<jsp:include page="../../layout/Open.jsp" />
</layout>
<def id="title" >我是首页</def> <def id="body" /> 内容随便写。 都在 body 里。

母页:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><def id=title /></title>
<script src="/R/MyJs_Open.js"></script>
<link href="~/R/MyCss_Open.css" rel="stylesheet">
</head>
<body>
  <def id=body />
</body>
</html>

关联点:

子页面使用

<layout>
<jsp:include page="../../layout/Open.jsp" />
</layout>

声明母版页位置,并把母版页的内容渲染到当前页的 layout内。

母版页和子页使用 def 标签的 进行关联, 子页的def 内容填充到母页的 def 元素内,并去除 def 标签。

宽泛的扩展:

子页的 def 定义有两种方式:

推荐方式:

<def id="body">
Body内容区
</def>

或者,自闭合方式

<def id="body" />
下面全部是Body的内容。直到遇到下一个 def 标签。

母版页定义的 def 元素标签:

1. 允许有内容,内容将在加载子页面后,被移除。

2. 标签如果是自闭合。推荐。

母子页面自动关联 def中没有定义 id的def元素。仅关联第一个匹配的。

给母版传递Model

母页面使用 @变量名 来接收子页面 request.setAttribute 的 Key值。

public static HttpServletRequest getRequest(){
if( Request == null || Request.get() == null){
System.out.printf("Web.xml没有配置该路由,导致Request为空,将从RequestContextHolder返回Request对象!");
return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
}
return Request.get();
}

技巧片断

1. 找包下类名:

   /**
* 从一个包中找出所有的类,不包括jar包
* @param packageName
* @return
* @throws IOException
* @throws ClassNotFoundException
*/
@SuppressWarnings("rawtypes")
public static List<Class> getClasses(String packageName)
throws IOException, ClassNotFoundException {
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
String path = packageName.replace(".", "/");
System.out.println("Path:"+path);
Enumeration<URL> resources = classLoader.getResources(path);
List<File> dirs = new ArrayList<File>();
while (resources.hasMoreElements()) {
URL urlResource = resources.nextElement();
dirs.add(new File(urlResource.getFile()));
}
List<Class> classes = new ArrayList<Class>();
for (File directory : dirs) {
classes.addAll(findClasses(directory, packageName));
}
return classes;
} @SuppressWarnings("rawtypes")
private static List<Class> findClasses(File directory, String packageName) throws ClassNotFoundException {
List<Class> classes=new ArrayList<Class>();
if(!directory.isDirectory()){
return classes;
}
File[] files=directory.listFiles();
for(File file:files){
if(file.isDirectory()){
assert !file.getName().contains(".");
System.out.println(packageName+"."+file.getName());
classes.addAll(findClasses(file,packageName+"."+file.getName()));
}else if(file.getName().endsWith(".class")){
classes.add(Class.forName(packageName+"."+file.getName().substring(0, file.getName().length()-6)));
}
}
return classes;
}

源自: http://bbs.csdn.net/topics/390716276

2. 代码生成器 rapid generator 调试

rapid-generator.jar:cn.org.rapid_framework.generator.Generator.class

scanTemplatesAndProcess

日志的地方:

GLogger.println("-------------------load template from templateRootDir = \'" + templateRootDir.getAbsolutePath() + "\' outRootDir:" + (new File(this.outRootDir)).getAbsolutePath());

即是开始的地方。

到:executeGenerate 方法的时候,可以看  filePathModel 参数,即是可以使用的变量。

一些列的属性方法在: cn.org.rapid_framework.generator.provider.db.table.model.Column 中。

问题

1. java.lang.ClassNotFoundException: org.bson.conversions.Bson

把mongo-java-driver-3.2.0 Copy 到 \target\MyMvc\WEB-INF\lib 下。

Java语法笔记的更多相关文章

  1. Java学习笔记之---基础语法

    Java学习笔记之---基础语法 一. Java中的命名规范 (一)包名 由多个单词组成时,所有字母小写(例如:onetwo) (二)类名和接口 由多个单词组成时,所有单词首字母大写(例如:OneTw ...

  2. 【笔记】Java语法

    Java语法 兜兜转转,又绕回到Java了. 最近在学习Java,其实以前也学过,但是技术发展太快了,Java都出到14了..是时候该更新一下知识体系了. 然后看的是网上好评如潮的<Java核心 ...

  3. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  4. &lbrack;Java入门笔记&rsqb; 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  5. 《Java学习笔记&lpar;第8版&rpar;》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  6. 瘋耔java语言笔记

    一◐ java概述                                                                                        1.1 ...

  7. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  8. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  9. 20145330第九周《Java学习笔记》

    20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...

随机推荐

  1. StringGrid 实例2:1、获取 StringGrid 的行数、列数&semi; 2、给单元赋值&period;

    实例2: 本例功能: 1.获取 StringGrid 的行数.列数; 2.给单元赋值. 运行效果图:

  2. 高点击率的Banner设计14招

    英文原文:14 design tips for more clickable banner ads 译文:http://www.uisdc.com/banner-click-rate 虽然互联网发展迅 ...

  3. 剑指Offer07 斐波那契数列

    /************************************************************************* > File Name: 07_Fibona ...

  4. coreseek安装使用

    本文引自:http://www.phperz.com/article/14/0615/95.html sphinx的安装使用,其实都是大同小异,以下以 coreseek安装为例Coreseek 是一款 ...

  5. vmware 8下ubuntu 13&period;04安装vmware tools

    在虚拟机vmware 8.0里安装了ubuntu 13.04.为了方便与主机交互,安装vmware tools. 解压后直接运行 ./vmware-install.pl 一路默认路径安装下来,到&qu ...

  6. 【设计模式 - 9】之装饰者模式(Decorator)

    1      模式简介 装饰者模式允许向一个现有的对象添加新的功能,同时又不改变其结构. 装饰者模式的思路是用"调料"对象将原始对象进行层层包裹,同时其属性.动作层层传递,达到最终 ...

  7. PHP filter例子

    <?phpfunction convertSpace($str) { return str_replace(' ', '_', $str);} $str = 'i am a great guy! ...

  8. IOS开发-OC学习-kvc&comma;kvo

    kvc是用来方便的设置实例的属性值的,比如person类的实例p1有一个name的属性,那么我们可以通过kvc去设置p1的name,语法是: [ 对象 setValue:@"xiaming& ...

  9. java根据图片路径下载到服务器方案 (转)

    http://www.cnblogs.com/thinkingandworkinghard/articles/5589484.html 平常做的工作中,有一部分是同步数据的.但是同步的过程中碰到个问题 ...

  10. iOS之ProtocolBuffer搭建

    一.环境安装:pb编译器的安装 1.从https://github.com/google/protobuf/releases下载protocolBuffer对应版本编译器包,比如目前的对应的objc最 ...