锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久精品国产清高在天天线,色婷婷噜噜久久国产精品12p,综合久久给合久久狠狠狠97色http://www.shnenglu.com/aaxron/category/20407.html璁板綍淇鐨勫嵃璁? zh-cnFri, 03 Jan 2020 02:50:31 GMTFri, 03 Jan 2020 02:50:31 GMT602銆丳ass a string to/from Java to/from CTag(s): JNIhttp://www.shnenglu.com/aaxron/archive/2019/12/06/217014.html澶╀笅澶╀笅Fri, 06 Dec 2019 02:53:00 GMThttp://www.shnenglu.com/aaxron/archive/2019/12/06/217014.htmlhttp://www.shnenglu.com/aaxron/comments/217014.htmlhttp://www.shnenglu.com/aaxron/archive/2019/12/06/217014.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217014.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217014.htmlPass a string to/from Java to/from CTag(s): JNI
To Java from C (as seen from the previous How-to) :
#include "JavaHowTo.h" 

JNIEXPORT jstring JNICALL Java_JavaHowTo_sayHello
  (JNIEnv *env, jobject obj) {
    return  env->NewStringUTF("Hello world");
}
From Java to C : Suppose we have a Java Class
public class MyClass {
  public String sayHello(){
     return  "Hello world From Java";
  }
}
then from C, we want to call the Java sayHello() method which returns a String :
JNIEXPORT void JNICALL Java_JavaHowTo_sayHello(JNIEnv *env, jobject obj) 
{
    const char *str;
  
    jclass myclass_class =(jclass) env->NewGlobalRef 
         (env->FindClass ("MyClass"));
        
    // we need the MyClass constructor    
    jmethodID constructorID = env->GetMethodID
         (myclass_class, "", "()V");
         
    // and the sayHello() method
    jmethodID methodID = env->GetMethodID
         (myclass_class, "sayHello", "()Ljava/lang/String;");

    // instanciate a MyClass object
    jobject myclass_object =  env->NewObject
         (myclass_class, constructorID);
    
    // call the sayHello() method
    jstring s = (jstring)  env->CallObjectMethod
         (myclass_object, methodID);
    
    // convert the Java String to use it in C
    str = env->GetStringUTFChars(s, 0);
    printf("%s" , str);
    env->ReleaseStringUTFChars(s, str);  
}

The Java JNI wrapper would be
class JavaHowTo {
  public native void sayHello();
  static {
    System.loadLibrary("javahowto"); 
  }
}
And finally, to use it
public class JNIJavaHowTo {
  public static void main(String[] args) {
    JavaHowTo jht = new JavaHowTo();
    jht.sayHello();
    }
}









澶╀笅 2019-12-06 10:53 鍙戣〃璇勮
]]>
1銆乁se native code through JNI (HelloWorld)http://www.shnenglu.com/aaxron/archive/2019/12/06/217013.html澶╀笅澶╀笅Fri, 06 Dec 2019 02:50:00 GMThttp://www.shnenglu.com/aaxron/archive/2019/12/06/217013.htmlhttp://www.shnenglu.com/aaxron/comments/217013.htmlhttp://www.shnenglu.com/aaxron/archive/2019/12/06/217013.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/217013.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/217013.htmlhttps://www.rgagnon.com/topics/java-jni.html

 

Use native code through JNI (HelloWorld)

Use native code through JNITag(s): JNI

With MSVC6, create a new Win32 DLL project (simple) and call it javahowto.

In the same directory create a java source called JavaHowTo.java 
class JavaHowTo {
  public native String sayHello();
  static {
    System.loadLibrary("javahowto"); 
  }
}
Compile the Java program and use javah utility to generate the JavaHowTo.h header file.
javah -jni JavaHowTo
In MSVC6, add the JavaHowTo.h in your project header files
In the Tools - Options menu, set the include directories to include the Java JNI headers files. They are located in [jdk dir]\include and [jdk dir]\include\win32 directories
In the javahowto.cpp source, add
#include "JavaHowTo.h" 

JNIEXPORT jstring JNICALL Java_JavaHowTo_sayHello
  (JNIEnv *env, jobject obj) {
    return  env->NewStringUTF("Hello world");
}
Select the Release configuration and build the project.
Copy the javahowto.dll in the same directory as the java program.
Create this new java program
public class JNIJavaHowTo {
  public static void main(String[] args) {
    JavaHowTo jht = new JavaHowTo();
    System.out.println(jht.sayHello());
    }
}
Compile and execute.







澶╀笅 2019-12-06 10:50 鍙戣〃璇勮
]]>
spring 瀹樻柟涓嬭澆鍦板潃錛圫pring Framework 3.2.x&Spring Framework 4.0.x錛?/title><link>http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html</link><dc:creator>澶╀笅</dc:creator><author>澶╀笅</author><pubDate>Tue, 12 Feb 2019 03:44:00 GMT</pubDate><guid>http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html</guid><wfw:comment>http://www.shnenglu.com/aaxron/comments/216238.html</wfw:comment><comments>http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/aaxron/comments/commentRss/216238.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/aaxron/services/trackbacks/216238.html</trackback:ping><description><![CDATA[<p>spring 瀹樻柟涓嬭澆鍦板潃錛圫pring Framework 3.2.x&Spring Framework 4.0.x錛?br />2017騫?2鏈?4鏃?15:53:59 </p> <p>SPRING瀹樻柟緗戠珯鏀圭増鍚庯紝寤鴻閮芥槸閫氳繃 Maven鍜孏radle涓嬭澆錛屽涓嶄嬌鐢∕aven鍜孏radle寮鍙戦」鐩殑錛屼笅杞藉氨闈炲父楹葷儲錛屼笅緇欏嚭Spring Framework jar瀹樻柟鐩存帴涓嬭澆璺緞:</p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/spring/</a></p> <p> </p> <p>spring 4.0.x(Spring Framework 4.0.5)涓嬭澆</p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/spring/4.0.5.RELEASE/spring-framework-4.0.5.RELEASE-dist.zip</a></p> <p> </p> <p>spring 3.2.x錛圫pring Framework 3.2.9錛変笅杞斤細</p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/spring/3.2.9.RELEASE/spring-framework-3.2.9.RELEASE-dist.zip</a></p> <p> </p> <p> </p> <p>spring 3.2.x錛圫pring Framework 3.2.4錛変笅杞斤細</p> <p><a >http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEASE/spring-framework-3.2.4.RELEASE-dist.zip</a></p> <p><br /> </p> <p>鍙pring security涓嬭澆璺緞錛?/p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/security/spring-security/</a></p> <p><a >http://repo.spring.io/libs-release-local/org/springframework/security/spring-security/3.2.4.RELEASE/spring-security-3.2.4.RELEASE-dist.zip</a></p><img src ="http://www.shnenglu.com/aaxron/aggbug/216238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/aaxron/" target="_blank">澶╀笅</a> 2019-02-12 11:44 <a href="http://www.shnenglu.com/aaxron/archive/2019/02/12/216238.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>spring婧愮爜鍒嗘瀽錛?錛堿nnotationMethodHandlerAdapterhttp://www.shnenglu.com/aaxron/archive/2018/04/11/215585.html澶╀笅澶╀笅Wed, 11 Apr 2018 08:40:00 GMThttp://www.shnenglu.com/aaxron/archive/2018/04/11/215585.htmlhttp://www.shnenglu.com/aaxron/comments/215585.htmlhttp://www.shnenglu.com/aaxron/archive/2018/04/11/215585.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/215585.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/215585.htmlpublic class AnnotationMethodHandlerAdapter extends WebContentGenerator
        
implements HandlerAdapter, Ordered, BeanFactoryAware {
    
//

    
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        
return invokeHandlerMethod(request, response, handler);
    }

    
protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        ServletHandlerMethodResolver methodResolver 
= getMethodResolver(handler);
        Method handlerMethod 
= methodResolver.resolveHandlerMethod(request);
        ServletHandlerMethodInvoker methodInvoker 
= new ServletHandlerMethodInvoker(methodResolver);
        ServletWebRequest webRequest 
= new ServletWebRequest(request, response);
        ExtendedModelMap implicitModel 
= new BindingAwareModelMap();

        Object result 
= methodInvoker.invokeHandlerMethod(handlerMethod, handler, webRequest, implicitModel);
        ModelAndView mav 
=
                methodInvoker.getModelAndView(handlerMethod, handler.getClass(), result, implicitModel, webRequest);
        methodInvoker.updateModelAttributes(handler, (mav 
!= null ? mav.getModel() : null), implicitModel, webRequest);
        
return mav;
    }

    
public ModelAndView getModelAndView(Method handlerMethod, Class<?> handlerType, Object returnValue,
            ExtendedModelMap implicitModel, ServletWebRequest webRequest) 
throws Exception {}
}


鍏朵粬
public final class Method extends Executable {
    
public Object invoke(Object obj, Object args)
    
throws IllegalAccessException, IllegalArgumentException,InvocationTargetException
    {
        
if (!override) {
            
if (!Reflection.quickCheckMemberAccess(clazz, modifiers)) {
                Class
<?> caller = Reflection.getCallerClass();
                checkAccess(caller, clazz, obj, modifiers);
            }
        }
        MethodAccessor ma 
= methodAccessor;             // read volatile
        if (ma == null) {
            ma 
= acquireMethodAccessor();
        }
        
return ma.invoke(obj, args);
    }
}
public class ModelMap extends LinkedHashMap<String, Object> {}

public abstract class AbstractView extends WebApplicationObjectSupport implements View, BeanNameAware {
    
/**
     * Prepares the view given the specified model, merging it with static
     * attributes and a RequestContext attribute, if necessary.
     * Delegates to renderMergedOutputModel for the actual rendering.
     * 
@see #renderMergedOutputModel
     
*/
    @Override
    
public void render(Map<String, ?> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
        
if (logger.isTraceEnabled()) {
            logger.trace(
"Rendering view with name '" + this.beanName + "' with model " + model +
                
" and static attributes " + this.staticAttributes);
        }

        Map
<String, Object> mergedModel = createMergedOutputModel(model, request, response);
        prepareResponse(request, response);
        renderMergedOutputModel(mergedModel, getRequestToExpose(request), response);
    }
}
浠g爜錛?br />

澶╀笅 2018-04-11 16:40 鍙戣〃璇勮
]]>
spring婧愮爜鍒嗘瀽錛?錛塂ispatcherServlethttp://www.shnenglu.com/aaxron/archive/2018/04/11/215584.html澶╀笅澶╀笅Wed, 11 Apr 2018 08:39:00 GMThttp://www.shnenglu.com/aaxron/archive/2018/04/11/215584.htmlhttp://www.shnenglu.com/aaxron/comments/215584.htmlhttp://www.shnenglu.com/aaxron/archive/2018/04/11/215584.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/215584.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/215584.htmlpublic class DispatcherServlet extends FrameworkServlet {
    
private List<HandlerMapping> handlerMappings;

    
protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
        doDispatch(request, response);
    }
    
    
protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
        HttpServletRequest processedRequest 
= request;
        HandlerExecutionChain mappedHandler 
= null;
        
boolean multipartRequestParsed = false;
        
try {
            ModelAndView mv 
= null;
            Exception dispatchException 
= null;
            
try {
                processedRequest 
= checkMultipart(request);
                multipartRequestParsed 
= (processedRequest != request);

                
// Determine handler for the current request.  //鏄犲皠澶勭悊鍣?/span>
                mappedHandler = getHandler(processedRequest); //HandlerExecutionChain
                if (mappedHandler == null || mappedHandler.getHandler() == null) {
                    noHandlerFound(processedRequest, response);
                    
return;
                }

                
// Determine handler adapter for the current request. //閫傞厤澶勭悊鍣?/span>
                HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());

                
if (!mappedHandler.applyPreHandle(processedRequest, response)) {
                    
return;
                }

                
// Actually invoke the handler. 
                mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

                applyDefaultViewName(processedRequest, mv); 
                mappedHandler.applyPostHandle(processedRequest, response, mv);
            }

            
//娓叉煋瑙嗗浘
            processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException); 
        }
        
catch (Exception ex) {
            triggerAfterCompletion(processedRequest, response, mappedHandler, ex);
        }
        
finally {
        }
    }
    
private void processDispatchResult(HttpServletRequest request, HttpServletResponse response,
        HandlerExecutionChain mappedHandler, ModelAndView mv, Exception exception) 
throws Exception {
        
// Did the handler return a view to render?
        if (mv != null && !mv.wasCleared()) {
            render(mv, request, response);
        }
        
else {
            
if (logger.isDebugEnabled()) {
                logger.debug(
"Null ModelAndView returned to DispatcherServlet with name '" + getServletName() +
                        
"': assuming HandlerAdapter completed request handling");
            }
        }
        
if (mappedHandler != null) {
            mappedHandler.triggerAfterCompletion(request, response, 
null);
        }
    }
    
    
protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception {
        
// Determine locale for request and apply it to the response.
        Locale locale = this.localeResolver.resolveLocale(request);
        response.setLocale(locale);

        View view;
        
if (mv.isReference()) {
            
// We need to resolve the view name.
            view = resolveViewName(mv.getViewName(), mv.getModelInternal(), locale, request);
            
if (view == null) {
                
throw new ServletException("Could not resolve view with name '" + mv.getViewName() +
                        
"' in servlet with name '" + getServletName() + "'");
            }
        }
        
else {
            
// No need to lookup: the ModelAndView object contains the actual View object.
            view = mv.getView();
            
if (view == null) {
                
throw new ServletException("ModelAndView [" + mv + "] neither contains a view name nor a " +
                        
"View object in servlet with name '" + getServletName() + "'");
            }
        }

        
// Delegate to the View object for rendering.
        if (logger.isDebugEnabled()) {
            logger.debug(
"Rendering view [" + view + "] in DispatcherServlet with name '" + getServletName() + "'");
        }
        
try {
            view.render(mv.getModelInternal(), request, response);
        }
        
catch (Exception ex) {
            logger.debug(
"Error rendering view [" + view + "] in DispatcherServlet with name '" +    getServletName() + "'", ex);
            
throw ex;
        }
}


澶╀笅 2018-04-11 16:39 鍙戣〃璇勮
]]>
AutoCloseable,Closeable鍜孎lushable鎺ュ彛http://www.shnenglu.com/aaxron/archive/2015/12/04/212411.html澶╀笅澶╀笅Fri, 04 Dec 2015 06:50:00 GMThttp://www.shnenglu.com/aaxron/archive/2015/12/04/212411.htmlhttp://www.shnenglu.com/aaxron/comments/212411.htmlhttp://www.shnenglu.com/aaxron/archive/2015/12/04/212411.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/212411.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/212411.html鎺㈢┒java IO涔婣utoCloseable,Closeable鍜孎lushable鎺ュ彛
java-io涓庣綉緇滅紪紼?br />
鏈?涓帴鍙e浜庢祦綾葷浉褰撻噸瑕併傚叾涓袱涓帴鍙f槸Closeable鍜孎lushable錛屽畠浠槸鍦╦ava.io鍖呬腑瀹氫箟鐨勶紝騫朵笖鏄敱JDK5娣誨姞鐨勩傜3涓帴鍙f槸AutoColseable錛屽畠鏄敱JDK7娣誨姞鐨勬柊鎺ュ彛錛岃鎵撳寘鍒癹ava.lang鍖呬腑銆?br />
AutoCloseable鎺ュ彛瀵笿DK7鏂版坊鍔犵殑甯﹁祫婧愮殑try璇彞鎻愪緵浜嗘敮鎸侊紝榪欑try璇彞鍙互鑷姩鎵ц璧勬簮鍏抽棴榪囩▼銆傚彧鏈夊疄鐜頒簡AutoCloseable鎺ュ彛鐨勭被鐨勫璞℃墠鍙互鐢卞甫璧勬簮鐨則ry璇彞榪涜綆$悊銆侫utoCloseable鎺ュ彛鍙畾涔変簡close()鏂規硶錛?br />void close() throws Exception
榪欎釜鏂規硶鍏抽棴璋冪敤瀵硅薄錛岄噴鏀懼彲鑳藉崰鐢ㄧ殑鎵鏈夎祫婧愩傚湪甯﹁祫婧愮殑try璇彞鐨勬湯灝撅紝浼氳嚜鍔ㄨ皟鐢ㄨ鏂規硶錛屽洜姝ゆ秷闄や簡鏄懼紡璋冪敤close()鏂規硶鐨勯渶瑕併?br />
Closeable鎺ュ彛涔熷畾涔変簡close()鏂規硶銆傚疄鐜頒簡Closeable鎺ュ彛鐨勭被鐨勫璞″彲浠ヨ鍏抽棴銆備粠JDK7寮濮嬶紝Closeable鎵╁睍浜咥utoCloseable銆傚洜姝わ紝鍦↗DK7涓紝鎵鏈夊疄鐜頒簡Closeable鎺ュ彛鐨勭被涔熼兘瀹炵幇浜咥utoCloseable鎺ュ彛銆?br />
瀹炵幇浜咶lushable鎺ュ彛鐨勭被鐨勫璞★紝鍙互寮哄埗灝嗙紦瀛樼殑杈撳嚭鍐欏叆鍒頒笌瀵硅薄鍏寵仈鐨勬祦涓傝鎺ュ彛瀹氫箟浜唂lush()鏂規硶錛屽涓嬫墍紺猴細
void flush() throws IOException
鍒鋒柊嫻侀氬父浼氬鑷寸紦瀛樼殑杈撳嚭琚墿鐞嗗湴鍐欏叆鍒板簳灞傝澶囦腑銆傚啓鍏ユ祦鐨勬墍鏈塈/O綾婚兘瀹炵幇浜咶lushable鎺ュ彛銆?br />
娉細鍏充簬甯﹁祫婧愮殑try璇彞鐨?涓叧閿偣錛?br />
鐢卞甫璧勬簮鐨則ry璇彞綆$悊鐨勮祫婧愬繀欏繪槸瀹炵幇浜咥utoCloseable鎺ュ彛鐨勭被鐨勫璞°?br />
鍦╰ry浠g爜涓0鏄庣殑璧勬簮琚殣寮忓0鏄庝負fianl銆?br />
閫氳繃浣跨敤鍒嗗彿鍒嗛殧姣忎釜澹版槑鍙互綆$悊澶氫釜璧勬簮銆?br />
姝ゅ璇瘋浣忥紝鎵澹版槑璧勬簮鐨勪綔鐢ㄥ煙琚檺鍒跺湪甯﹁祫婧愮殑try璇彞涓傚甫璧勬簮鐨則ry璇彞鐨勪富瑕佷紭鐐規槸錛氬綋try浠g爜鍧楃粨鏉熸椂錛岃祫婧愶紙鍦ㄦ鏃舵祦錛変細琚嚜鍔ㄥ叧闂傚洜姝わ紝涓嶅お鍙兘浼氬繕璁板叧闂祦銆備嬌鏈夊甫璧勬簮鐨則ry璇彞錛岄氬父鍙互浣挎簮浠g爜鏇寸煭錛屾洿娓呮櫚錛屾洿瀹規槗緇存姢銆傚渚嬶細

package io;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputStreamReaderTest 
{
    public static void main(String[] args) 
    {
        try(BufferedReader reader = new BufferedReader(
            new InputStreamReader(
                new FileInputStream(
                    new File("/home/fuhd/text")),"UTF8"),1024)){
            System.out.println(reader.readLine());    //榪欓噷鐩存帴璇諱竴琛?/span>
        } catch(IOException e){
            e.printStackTrace();
        }
    }
}

澶╀笅 2015-12-04 14:50 鍙戣〃璇勮
]]>
JAVA閫氳繃JNI璋冪敤鏈湴dllhttp://www.shnenglu.com/aaxron/archive/2015/12/04/212409.html澶╀笅澶╀笅Fri, 04 Dec 2015 03:48:00 GMThttp://www.shnenglu.com/aaxron/archive/2015/12/04/212409.htmlhttp://www.shnenglu.com/aaxron/comments/212409.htmlhttp://www.shnenglu.com/aaxron/archive/2015/12/04/212409.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/212409.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/212409.htmlJAVA閫氳繃JNI璋冪敤鏈湴dll 

涓銆丣AVA涓墍闇瑕佸仛鐨勫伐浣?nbsp;
Java宸ョ▼Example01
絎竴姝ワ細鍒涘緩Java綾伙紝綾誨悕錛歍estJni 鍦ㄩ噷闈㈠畾涔変竴涓湰鍦版柟娉曪紙鐢╪ative鍏抽敭瀛椾慨楗扮殑鏂規硶錛?br />package NeoWay;
public class TestJni 
{
    static {
            System.loadLibrary("neoway");
    }     
    public native static void sayHello();
}

絎簩姝ワ細鐢熸垚javah 璇撮渶瑕佺殑.class鏂囦歡
鍦―OS紿楀彛涓繘鍏ュ伐紼嬫墍鍦ㄧ殑src鏂囦歡澶?
javac NeoWay\TestJni.java

絎笁姝ワ細浣跨敤javah鍛戒護鐢熸垚鏈湴鏂規硶鐨凜++澶存枃浠?nbsp;
@rem javah 鍖?綾?br />javah NeoWay.TestJni  
鍦―OS紿楀彛涓繘鍏ュ伐紼嬫墍鍦ㄧ洰褰曪紝鐒跺悗鎵цjavah NeoWay.TestJni鍛戒護錛屾墽琛屽畬涔嬪悗灝變細鍦ㄥ綋鍓嶇洰褰曠敓鎴愪竴涓悗緙鍚嶄負.h鐨勫ご鏂囦歡

絎洓姝ワ細鏂板緩VC++鐨刣ll宸ョ▼錛堥檮浠墮夐」錛氱┖欏圭洰錛夛紝宸ョ▼鍚嶄負錛歯eoway
灝嗙浉鍏崇殑璺緞鍔犲叆VC++鐨刬nclude
C:\Program Files\Java\jdk1.7.0_80\include
C:\Program Files\Java\jdk1.7.0_80\include\Win32
灝嗙敓鎴愮殑NeoWay_TestJni.h寮曞叆璇C宸ョ▼

NeoWay_TestJni.h鍐呭濡備笅錛?br />/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class NeoWay_TestJni */

#ifndef _Included_NeoWay_TestJni
#define _Included_NeoWay_TestJni
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     NeoWay_TestJni
 * Method:    sayHello
 * Signature: ()V
 
*/
JNIEXPORT void JNICALL Java_NeoWay_TestJni_sayHello
  (JNIEnv *, jclass);


#ifdef __cplusplus
}
#endif
#endif

鏂板緩涓涓?nbsp;NeoWay_TestJni.cpp錛屽唴瀹瑰涓嬶細
#include "NeoWay_TestJni.h"
JNIEXPORT void JNICALL Java_NeoWay_TestJni_sayHello (JNIEnv *, jclass)
{
    printf("Java_NeoWay_TestJni_sayHello() Entry\r\n");
}

//Example01
import NeoWay.TestJni;
public class Example01 
{
    public static void main(String[] args) 
    {
        System.out.println("main() entry()");
        TestJni.sayHello();
    }
}


絎簲姝ワ細嫻嬭瘯榪愯
灝哣C++宸ョ▼鐢熸垚neoway.dll鎷瘋礉鑷矹ava宸ョ▼Example01鐩綍
javac Example01.java
java Example01

杈撳嚭錛?br />main() entry()
Java_NeoWay_TestJni_sayHello() Entry

澶╀笅 2015-12-04 11:48 鍙戣〃璇勮
]]>
Java綰跨▼Examplehttp://www.shnenglu.com/aaxron/archive/2015/12/03/212398.html澶╀笅澶╀笅Thu, 03 Dec 2015 06:07:00 GMThttp://www.shnenglu.com/aaxron/archive/2015/12/03/212398.htmlhttp://www.shnenglu.com/aaxron/comments/212398.htmlhttp://www.shnenglu.com/aaxron/archive/2015/12/03/212398.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/212398.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/212398.html
//NewThread.java
package NewThread;

public class NewThread implements Runnable
{
    public String name;
    public Thread t;
    public NewThread(String _name)
    {
        name = _name;
        t = new Thread(this);
        t.start();
    }


    public void run() {
        for (int i=0;i<3;i++)
        {
            try {
                //鏈夊彲鑳借鍏朵粬綰跨▼涓柇
                Thread.sleep(1000);
            }
            catch(Exception e) {
            }
            System.out.println(name+i);
        }
        
    }
}


import NewThread.NewThread;

public class Example01 
{
    public static void main(String[] args) 
    {
        NewThread t = new NewThread("NewThread");
        try {
            t.t.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("main_thread.join()");    
    }
}



澶╀笅 2015-12-03 14:07 鍙戣〃璇勮
]]>
Java鍜孋++鐨勪笉鍚岀偣http://www.shnenglu.com/aaxron/archive/2013/03/14/198420.html澶╀笅澶╀笅Thu, 14 Mar 2013 07:59:00 GMThttp://www.shnenglu.com/aaxron/archive/2013/03/14/198420.htmlhttp://www.shnenglu.com/aaxron/comments/198420.htmlhttp://www.shnenglu.com/aaxron/archive/2013/03/14/198420.html#Feedback0http://www.shnenglu.com/aaxron/comments/commentRss/198420.htmlhttp://www.shnenglu.com/aaxron/services/trackbacks/198420.htmlJava 瀹氫箟浜?4 縐嶆暣鏁扮被鍨嬶細byte銆乻hort銆乮nt 鍜?long銆?/span>
鎵鏈夎繖浜涚被鍨嬮兘鏄湁絎﹀彿鐨勩佹鐨勬垨璐熺殑鏁存暟銆?/span>
Java 涓嶆敮鎸佹棤絎﹀彿鐨勩佸彧鏄鍊肩殑鏁存暟銆傝澶氬叾浠栬綆楁満璇█鍚屾椂鏀寔鏈夌鍙峰拰鏃犵鍙鋒暣鏁般傜劧鑰岋紝Java 鐨勮璁¤呰寰楁棤絎﹀彿鏁存暟涓嶆槸蹇呴渶鐨勩?/span>

鍦?Java 涓紝鐢ㄤ簬瀛樺偍瀛楃鐨勬暟鎹被鍨嬫槸 char銆傜劧鑰岋紝C/C++紼嬪簭鍛樿褰撳績錛?/span>
Java 涓殑 char涓?C 鎴?C++涓殑 char 鏄笉鍚岀殑銆傚湪 C/C++涓紝char 鐨勫搴︽槸 8 浣嶃傝屽湪 Java 涓笉鏄繖鏍風殑銆?/span>
鐩稿弽錛孞ava 浣跨敤 Unicode 琛ㄧず瀛楃銆備負姝わ紝Unicode 闇瑕?16 浣嶅銆傚洜姝わ紝鍦?Java 涓?char 鏄?16 浣嶇被鍨嬨?span style="white-space: pre">

浠?JDK 7 寮濮嬶紝鍙互浣跨敤浜岃繘鍒舵寚瀹氭暣鍨嬪瓧闈㈠箋備負姝わ紝浣跨敤 0b 鎴?0B 浣滀負鏁板肩殑鍓嶇紑銆?/span>
浠?JDK 7 寮濮嬶紝鍦ㄦ暣鍨嬪瓧闈㈠間腑榪樺彲浠ュ祵鍏ヤ竴涓垨澶氫釜涓嬪垝綰褲傚祵鍏ヤ笅鍒掔嚎鍙互浣塊槄璇誨緢澶х殑鏁存暟鍙樺緱鏇村姞瀹規槗銆傚綋緙栬瘧瀛楅潰鍊兼椂錛屼細涓㈠純涓嬪垝綰褲?span style="white-space: pre">
int x = 123___456___789; 
int x = 0b1101_0101_0001_1010; 

Java 涓殑瀛楃琚儲寮曞埌 Unicode 瀛楃闆嗭紝瀹冧滑鏄彲浠ヨ漿鎹㈡垚鏁存暟鐨?16 浣嶅鹼紝騫朵笖鍙互浣跨敤鏁存暟榪愮畻絎﹁繘琛屾搷浣滐紝渚嬪鍔犲拰鍑忚繍綆楃銆傚瓧絎﹀瀷瀛楅潰鍊間嬌鐢ㄤ綅浜庝竴瀵瑰崟寮曞彿涓殑瀛楃鏉ヨ〃紺恒?/span>
鎵鏈夊彲瑙佺殑 ASCII 瀛楃閮藉彲浠ョ洿鎺ヨ緭鍏ュ埌鍗曞紩鍙蜂腑錛屽'a'銆?z'浠ュ強'@'銆傚浜庨偅浜涗笉鑳界洿鎺ヨ緭鍏ョ殑瀛楃錛屽彲浠ヤ嬌鐢ㄨ漿涔夊瓧絎﹀簭鍒楄緭鍏ラ渶瑕佺殑瀛楃錛?/span>
渚嬪'\"琛ㄧず鍗曞紩鍙楓?\n'琛ㄧず鎹㈣絎︺傝繕鏈変竴縐嶄互鍏繘鍒舵垨鍗佸叚榪涘埗鐩存帴杈撳叆瀛楃鍊肩殑鏈哄埗銆傚浜庡叓榪涘埗琛ㄧず娉曪紝浣跨敤鍙嶆枩鏉犲悗璺熶笁浣嶆暟瀛楄〃紺猴紝
渚嬪'\141'鏄瓧姣?a'銆傚浜庡崄鍏繘鍒訛紝鍏堣緭鍏?#8220;\u”錛岀劧鍚庢槸 4 浣嶇殑鍗佸叚榪涘埗鏁般?/span>
渚嬪'\u0061'琛ㄧず ISO-Latin-1 瀛楃'a'錛屽洜涓虹涓涓瓧鑺備負 0錛?\u73b0'鏄?'鐜?
char c = '\u73b0'; //鐜?/span>
鏃犵鍙峰彸縐昏繍綆楃
int i=-8>>>1;

Java涓嶇敤goto璇彞,鑰屾槸鐢╰ry-catch-finally寮傚父澶勭悊璇彞鏉ヤ唬鏇縢oto璇彞澶勭悊鍑洪敊鐨勫姛鑳?
Java涓嶆敮鎸佸畯瀹氫箟,鑰屾槸浣跨敤鍏抽敭瀛梖inal鏉ュ畾涔夊父閲?鍦–++涓垯閲囩敤瀹忓畾涔夋潵瀹炵幇甯擱噺瀹氫箟,榪欎笉寰椾簬紼嬪簭鐨勫彲璇繪?
緇撴瀯鍜岃仈鍚堢殑澶勭悊.鍦–鍜孋++涓?緇撴瀯鍜岃仈鍚堢殑鎵鏈夋垚鍛樺潎涓哄叕鏈?榪欏氨甯︽潵浜嗗畨鍏ㄦч棶棰?鑰屽湪Java涓牴鏈氨涓嶅寘鍚粨鏋勫拰鑱斿悎,鎵鏈夌殑鍐呭閮藉皝瑁呭湪綾婚噷闈?/span>
Java涓嶅啀浣跨敤鎸囬拡.紼嬪簭鍛樹笉鑳界洿鎺ヨ繘琛屼換浣曟寚閽堟搷浣?
java娌℃湁璞++涓鏍風殑鎿嶄綔絎﹂噸杞芥満鍒?span style="white-space: pre">
java涓嶇鏋勯犲嚱鏁版湁鏃犲弬鏁?閮藉簲璇ュ啓鎷彿
java鍒濆鍖栨垚鍛樺彉閲忕殑鏂規硶鍜孋錛嬶紜鏈夊緢澶т笉鍚? java鍏佽鐩存帴鍦ㄧ被鍐呴儴鎸囧畾鎴愬憳鍙橀噺鍒濆鍊?span style="white-space: pre">
java鎴愬憳鍙橀噺鐨勫垵濮嬪寲欏哄簭鍙栧喅浜庢垚鍛樺彉閲忕殑澹版槑欏哄簭, 鑰屾垚鍛樺彉閲忕殑鍒濆鍖栨繪槸鏃╀簬鏋勯犲嚱鏁扮殑鎵ц.榪欎篃鍜孋錛嬶紜鏈夊緢澶т笉鍚?C錛嬶紜鐨勬垚鍛樺彉閲忓垵濮嬪寲欏哄簭涔熷彇鍐充簬鎴愬憳鍙橀噺鐨勫0鏄庨『搴?浣嗘槸,瀹冧滑鍙兘鍦ㄦ瀯閫犲嚱鏁頒綋鍐?鎴栬呭湪鏋勯犲嚱鏁扮殑鍒濆鍖栧垪琛ㄩ噷榪涜鍒濆鍖?鑰屼笉浼氬厛浜庢瀯閫犲嚱鏁?span style="white-space: pre">

Java紼嬪簭涓墍鏈夌殑瀵硅薄閮芥槸鐢╪ew鎿嶄綔絎﹀緩绔嬪湪鍐呭瓨鍫嗘爤涓?/span>

Java鎻愪緵浜嗚嚜鍔ㄥ寲鐨勫瀮鍦炬悳闆?鍙互鎵嬪姩瑙﹀彂)銆傛病鏈夋瀽鏋勫嚱寮忕殑姒傚康錛屽 finalize() 鐨勪嬌鐢ㄦ槸涓嶆帹鑽愮殑

Java娌℃湁鍑藉紡鎸囨爣鏈哄埗銆傛浛浠g殑姒傚康鏄帴鍙o紝Adapter 鍜?Listener涔熸槸琚箍娉涗嬌鐢ㄧ殑

Java鐨勭戶鎵挎槸闈㈠悜瀵硅薄紼嬪簭璁捐鐨勫叧閿傚湪Java涓紝閫氳繃鍏抽敭瀛梕xtends緇ф壙涓涓凡鏈夌殑綾伙紝琚戶鎵跨殑綾葷О涓虹埗綾?瓚呯被錛屽熀綾?錛屾柊鐨勭被縐頒負瀛愮被(媧劇敓綾?銆傚湪Java涓笉鍏佽澶氱戶鎵褲?/span>

Java涓紝this閫氬父鎸囧綋鍓嶅璞★紝super鍒欐寚鐖剁被鐨勩?/span>

Java閲岄潰鏈変竴涓噾縐戠帀寰嬶細浠諱綍public闈瀞tatic鍑芥暟鐨勮皟鐢ㄩ兘鏄鎬佺殑銆?鎵浠ワ紝super.method()蹇呯劧璋冪敤鐨勬槸瀛愮被鐨勯偅涓増鏈?/span>



澶╀笅 2013-03-14 15:59 鍙戣〃璇勮
]]>
一级做a爱片久久毛片| 97精品国产91久久久久久| 中文字幕久久欲求不满| 亚洲国产精品综合久久网络 | 2020国产成人久久精品| 久久精品国产2020| 久久精品国产影库免费看| 色婷婷综合久久久久中文字幕| 婷婷国产天堂久久综合五月| 午夜天堂av天堂久久久| 99久久精品费精品国产| 亚洲av日韩精品久久久久久a | 久久精品麻豆日日躁夜夜躁| 久久久国产精品福利免费| 久久精品极品盛宴观看| 免费一级做a爰片久久毛片潮| 久久精品国产清自在天天线| 9191精品国产免费久久| 亚洲AV无码一区东京热久久| 日产久久强奸免费的看| .精品久久久麻豆国产精品| 国产精品久久新婚兰兰| 久久亚洲AV永久无码精品| 欧美激情精品久久久久| 国产美女久久精品香蕉69| 国产成人久久精品一区二区三区| 久久国产精品无| 亚洲国产天堂久久综合| 精品国产热久久久福利| 伊人久久精品线影院| 国内精品免费久久影院| 久久久久夜夜夜精品国产| 色欲av伊人久久大香线蕉影院| 亚洲欧洲日产国码无码久久99| 少妇无套内谢久久久久| 亚洲精品成人久久久| 久久只有这里有精品4| 久久福利资源国产精品999| 国产69精品久久久久观看软件 | 亚洲中文字幕无码久久2017| 99精品久久久久久久婷婷|