Metacity -- Gnome的默认窗口管理器

主题设计
配置文件
基本概念
测试 Themes
应用主题
进一步细究
配置
打开复合特性

主题设计

Metacity 主题配置文件基于 XML 格式。

配置文件

创建文件和目录:

$PREFIX/share/themes/[theme_name]/metacity-1/
$HOME/.themes/[theme_name]/metacity-1/

比如 Moblin 的主题 Moblin-Netbook ,以后都以这个主题为例。

/usr/share/themes/Moblin-Netbook/metacity-1/metacity-theme-1.xml

基本概念

支持的 Window 类型

Metacity 有 6 中窗口类型:

  1. normal

    a normal top-level window

  2. dialog

    a dialog window

  3. modal_dialog

    a dialog window that has modal state ie. intervention required by user before they can interact with it's parent window

  4. menu

    a pinnable menu window ie. tearoff menu

  5. utility

    a small persistant utility window ie. paletde or toolbox

  6. border

    a window that should not show any decorations typically ie. full screen window

Styles

对于每种 Window 类型,都需要为之设置一个 "style set" (或者称 window decoration )。 一个 "style set" 是几中不同的 "frame states" 的组合 styles 。"frame states" 有以下几种声明:

  • window 是聚焦还是没聚焦 (focused or un-focused)
  • window 是 maximized or shaded [or both]
  • window 能否被 vertically, horizontally, vertically and horizontally resized

一个 "frame state" 对于一个 "frame style" (都没有s,指单个)。"frame style" 化分为两部分: frame 'pieces' 和 window 'buttons'。这样分开更容 易定制 Metacity 主题。

Frame pieces

Metacity 有以下几种 frame pieces :

entire_background the whole frame of the window which is drawn first
titlebar 程序窗口的上面(俗称:标题栏)
titlebar_middle 标题栏的中间,不包括任何 "edge"
left_titlebar_edge 标题栏左边边缘
right_titlebar_edge 标题栏右边边缘
top_titlebar_edge 标题栏顶部边缘
bottom_titlebar_edge 标题栏底部边缘
title 包含标题的部分
left_edge frame 的左边边缘
right_edge frame 的右边边缘
bottom_edge frame 的底部边缘
overlay same as entire_background, only that it is drawn last

Window Buttons

Metacity 有以下几种 Window Buttons :

close 关闭按钮
maximize 最大化按钮
minimize 最小化
menu 菜单按钮

Buttons 可以有下面几种位置:

left_left_background 左边第一个按钮的背景
left_middle_background 左边第二个按钮的背景
left_right_background 左边第三个按钮的背景
right_left_background 右边第一个按钮的背景
right_middle_background 右边第二个按钮的背景
right_right_background 右边第三个按钮的背景

对于窗口上的每个按钮,需要设置一个在给出一个 "button state" 时的怎么样 显示。 Metacity 的按钮状态有:

normal 常规显示
pressed 鼠标点击 (clicked) 后的显示
prelight 聚焦时候显示

Window menus

通常是在标题栏点击右键弹出 menu ,或者标题栏设置一个 menu icons,点击这 个 menu icons 弹出菜单。菜单的上通常有下列列表:

close 关闭
maximize 最大化
minimize 最小化
unmaximize 取消最大化

而且可以设置在下面几种情况下,对于的 GtkStateType :

normal menu icon 常规显示
prelight menu icon 列表中的项目被聚焦后怎样显示
active 激活后又怎么显示
selected 选择后又怎么显示
insensitive 灰色状态(此时不可用)如何显示

测试 Themes

当然可以直接安装主题测试了,不过这有点傻。可以使用 metacity-theme-viewer 工具查看一个主题的面貌。不带参数的时候,显示当前 主题,后接一个主题名字作为参数,可以显示这个主题的面貌,这样很方便。注 意:主题名字是 /usr/share/themes 下的目录名,或者其他地方。

应用主题

使用 gconftool-2 或者使用 GUI 程序可以应用一个主题。

gconftool-2 --type=string --set /apps/metacity/general/theme 主题名

再次提醒:主题通常放在 /usr/share/themes 下。

查看当前主题,可以使用 gconf-editor 工具,也可以使用 :

gconftool-2 --dump /apps/metacity/general

进一步细究

Frame Geometry

这是你第一个要设置的! 如下所示,name 字段是后面给出 "frame style" 时的 参考名字。



   


下面图片显示了在 frame_geometry 中可以设置的宽度或长度:

frame geometry 有一些可选的属性:

has_title 默认是 true ,确定 title text height 是否包括进 height 计算
title_scale 使用 Pango 标记 — xx-small, x-small, small, medium, large, x-large and xx-large 。缺省取决于桌面字体。
rounded_top_left Determines whether the top left corner of the window should be rounded. This defaults to false if not specified.
rounded_top_right Determines whether the top right corner of the window should be rounded. This defaults to false if not specified.
rounded_bottom_left Determines whether the bottom left corner of the window should be rounded. This defaults to false if not specified.
rounded_bottom_right Determines whether the bottom right corner of the window should be rounded. This defaults to false if not specified.

示例:


  
  
  
  
  
  
  
  
  

frame geomtry 设置可以继承,设置 parent 字段:


        
        
        
        
        

Instead of specifying button widths and heights, you can specify an aspect ratio instead.


Drawing Operations

这个是 Metacity 主题设计的核心任务。要为 frame 设置一个 draw opt,需要 为 'frame piece' 匹配一个 drawing operation 。


  
  

Operators

下面一些操作符可以用在 Drawing operations 里:

Operator Meaning Example
+ Plus 2 + 3
- Minus 5 - 4
星号 Multiply 3 * 2
/ Divide 10 / 2
% Modulus 34 % 3
`max` Maximum 4 `max` 5
`min` Minimum 7 `min` 3
() Parenthesis (5 * 3) + 5
Constants (常量)

在 drawing operations 过程中,可以使用以前定义的变量或常量。常量的定义 需要声明,并且名字首字母要大写:



下面是可以直接使用的预定义变量:

width Width of the target area
height Height of the target area
object_width Natural width of the object being drawn
object_height Natural height of the object being drawn
left_width Distance from left of frame to client window
right_width Distance from right of frame to client window
top_height Distance from top of frame to client window
bottom_height Distance from bottom of frame to client window
mini_icon_width Width of mini icon for window
mini_icon_height Height of mini icon for window
icon_width Width of large icon
icon_height Height of large icon
title_width Width of title text
title_height Height of title text
Operations

Metacity 支持下面几种操作:

line

通过给出 origin (x1,y1) 和 destination (x2,y2) 和 color ,画一条线。 color 可以是如 "blue" 一样的名字,也可以是如 "#FF0099" 一样的数值,或者 是 GTK theme 的形式:"gtk:base[NORMAL]"。


  
  
  
  

rectangle (矩形)

通过给出 origin (x,y) 、 width 和 height 画一个 rectangle 。有 "filled" 属性,默认值是 "flase"。


  
  

arc (弧)

给定 origin (x,y) 、 width 、 height 、 start_angle 和 extent_angle , 画一个 arc 。有 "filled" 属性,默认值为 "flase"。


tint (色彩,浅色,痕迹)

gradient (倾斜度,坡度,升降率;倾斜的,步行的)

   
   

image

默认属性 "alpha" 是 0 , "colorize" 是 no color。


gtk_arrow

gtk_box

gtk_vline

icon

title

</pre> 
   <h5 style="color:rgb(111,122,159);">clip</h5> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><clip x="5" y="2" width="width - 10" height="height - SpacerHeight"/>
</pre> 
   <h5 style="color:rgb(111,122,159);">include</h5> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><include name="other_drawing_operations"/>
</pre> 
   <h5 style="color:rgb(111,122,159);">tile (砖瓦;铺以瓦,铺以瓷砖)</h5> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><tile name="other_drawing_operations" tile_width="10" tile_height="10"/>
</pre> 
   <h5 style="color:rgb(111,122,159);">Frame Style</h5> 
   <p>创建一个 'frame style' 就是把一堆不同的 'frame pieces' 和 'window buttons' 绑定到特定的 'frame geometry' 上。通常创建的 style 要能对 window 进行 ”normal, maximized, shaded, maximized_and_shaded“ 操作,还 要能判断 window 是否聚焦。</p> 
   <p>首先,创建一个模板,这个模板将来会包含所有 draw a given frame style 需 要的信息。</p> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><frame_style name="normal" geometry="normal">
  <piece position="entire_background" draw_ops="title_unfocused"/>
  <piece position="title" draw_ops="title_text_unfocused"/>
  <button function="close" state="normal" draw_ops="close_button_unfocused"/>
  <button function="close" state="pressed" draw_ops="close_button_pressed"/>
  <button function="maximize" state="normal" draw_ops="blank"/>
  <button function="maximize" state="pressed" draw_ops="blank"/>
  <button function="minimize" state="normal" draw_ops="blank"/>
  <button function="minimize" state="pressed" draw_ops="blank"/>
  <button function="menu" state="normal" draw_ops="blank"/>
  <button function="menu" state="pressed" draw_ops="blank"/>
</frame_style>

<frame_style name="focused" geometry="normal" parent="normal">
  <piece position="entire_background" draw_ops="title"/>
  <piece position="title" draw_ops="title_text"/>
  <button function="close" state="normal" draw_ops="close_button_normal"/>
  <button function="close" state="prelight" draw_ops="close_button_prelight"/>
</frame_style>
</pre> 
   <p>上面的 "focused" 继承了 "normal" 。</p> 
   <h5 style="color:rgb(111,122,159);">Frame pieces</h5> 
   <p>画 frame 的各部分,需要为每个 frame piece 提过一个 drawing operation 。 如果漏掉了一个 piece,这个 piece 部分就不会显示。</p> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;">  <piece position="entire_background" draw_ops="title_unfocused"/>
</pre> 
   <p>也可以 inline ,在里面画:</p> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><piece position="left_edge">
   <draw_ops>
      <rectangle color="#FF0000" x0="0" y0="0" x1="width" y1="height" filled="true"/>
   </draw_ops>
</piece>
</pre> 
   <p>下面图片标出了一个 frame 的 style 可以有的多种 pieces :</p> 
   <table class="image" width="100%" style="border-collapse:collapse;border-style:solid;border-color:rgb(170,170,170);border-width:1px 0px 0px 2px;"> 
    <tbody> 
     <tr> 
      <td align="center" style="border-style:solid;border-color:rgb(204,204,204);border-width:0px 1px 1px 0px;font-family:sans, 'Bitstream Vera Sans Mono', 'Courier New', Courier;"> </td> 
     </tr> 
     <tr> 
      <td align="center" class="image-caption" style="border-style:solid;border-color:rgb(204,204,204);border-width:0px 1px 1px 0px;font-family:sans, 'Bitstream Vera Sans Mono', 'Courier New', Courier;"> Non-title frame pieces</td> 
     </tr> 
    </tbody> 
   </table> 
   <table class="image" width="100%" style="border-collapse:collapse;border-style:solid;border-color:rgb(170,170,170);border-width:1px 0px 0px 2px;"> 
    <tbody> 
     <tr> 
      <td align="center" style="border-style:solid;border-color:rgb(204,204,204);border-width:0px 1px 1px 0px;font-family:sans, 'Bitstream Vera Sans Mono', 'Courier New', Courier;"> </td> 
     </tr> 
     <tr> 
      <td align="center" class="image-caption" style="border-style:solid;border-color:rgb(204,204,204);border-width:0px 1px 1px 0px;font-family:sans, 'Bitstream Vera Sans Mono', 'Courier New', Courier;"> Titlebar frame pieces</td> 
     </tr> 
    </tbody> 
   </table> 
   <table class="image" width="100%" style="border-collapse:collapse;border-style:solid;border-color:rgb(170,170,170);border-width:1px 0px 0px 2px;"> 
    <tbody> 
     <tr> 
      <td align="center" style="border-style:solid;border-color:rgb(204,204,204);border-width:0px 1px 1px 0px;font-family:sans, 'Bitstream Vera Sans Mono', 'Courier New', Courier;"> </td> 
     </tr> 
     <tr> 
      <td align="center" class="image-caption" style="border-style:solid;border-color:rgb(204,204,204);border-width:0px 1px 1px 0px;font-family:sans, 'Bitstream Vera Sans Mono', 'Courier New', Courier;"> Title frame piece</td> 
     </tr> 
    </tbody> 
   </table> 
   <h5 style="color:rgb(111,122,159);">Window Buttons</h5> 
   <p>对于一个 theme 需要设置一个最小集合的 window buttons。 "normal" 和 "pressed" 两种 "states" 的每一个都要都 "close","maximize","minimize" 和 "menu" buttons 的 "drawing methods"。如果 "prelight" 没有设置,就使用 "normal" 代替这个 "state"。</p> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;">  <button function="close" state="normal" draw_ops="close_button_unfocused"/>
</pre> 
   <p>Along with specifying the window buttons, you can can specify how to draw part of the button depending on the position within the window frame. If all your buttons have the same background, you need only specify drawing operations for left_middle_background and right_middle_background.</p> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><button function="left_middle_background" state="pressed" draw_ops="my_background_drawing_operation"/>
</pre> 
   <h5 style="color:rgb(111,122,159);">Menu Icons</h5> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><window_icon function="close" state="normal" draw_ops="menu_close_icon"/>
<window_icon function="maximize" state="normal" draw_ops="menu_maximize_icon"/>
<window_icon function="minimize" state="normal" draw_ops="menu_minimize_icon"/>
<window_icon function="unmaximize" state="normal" draw_ops="menu_unmaximize_icon"/>
</pre> 
   <h5 style="color:rgb(111,122,159);">Frame Style Set</h5> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><frame_style_set name="my_style_set">
   <frame focus="yes" state="normal" resize="both" style="my_normal_focused_style"/>
   <frame focus="no" state="normal" resize="both" style="my_normal_unfocused_style"/>
   <frame focus="yes" state="maximized" style="my_maximized_focused_style"/>
   <frame focus="no" state="maximized" style="my_maximized_unfocused_style"/>
   <frame focus="yes" state="shaded" style="my_shaded_focused_style"/>
   <frame focus="no" state="shaded" style="my_shaded_unfocused_style"/>
   <frame focus="yes" state="maximized_and_shaded" style="my_maximized_shaded_focused_style"/>
   <frame focus="no" state="maximized_and_shaded" style="my_maximized_shaded_unfocused_style"/>
</frame_style_set>
</pre> 
   <h5 style="color:rgb(111,122,159);">Windows</h5> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;"><window type="normal" style_set="normal"/>
<window type="dialog" style_set="normal"/>
<window type="modal_dialog" style_set="normal"/>
<window type="menu" style_set="normal"/>
<window type="utility" style_set="normal"/>
<window type="border" style_set="border"/>
</pre> 
   <h2 style="color:rgb(111,122,159);">配置</h2> 
   <h3 style="color:#008000;border-left-style:solid;border-left-color:rgb(220,220,233);border-left-width:2px;border-bottom-width:.1em;border-bottom-style:solid;border-bottom-color:rgb(220,220,233);"> 打开复合特性</h3> 
   <p class="first">在 gconf-edit 里找到下面键值,打上勾,就可以让 Alt+Tab 键显示美观点</p> 
   <pre class="example" style="margin-left:1em;border:.1em solid rgb(220,220,233);font-family:monospace, sans-serif;overflow:auto;">/apps/metacity/general/compositing_manager</pre> 
  </div> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1297175305223479296"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(distance,button,function,menu,dialog,border)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1881771726816210944.htm"
                           title="web前端常见的面试题总结" target="_blank">web前端常见的面试题总结</a>
                        <span class="text-muted">2401_84436095</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>script.src=url+‘?’+data+‘callback=’+funcNamedocument.body.appendChild(script);//这里得到请求的数据,在回调函数中执行处理window[funcName]=function(data){callback(data)}}//使用jsonp(‘http:127.0.0.1:3000/api’,{},function(res)</div>
                    </li>
                    <li><a href="/article/1881763912479731712.htm"
                           title="uniapp 开发 h5 授权微信登录(静默和非静默)" target="_blank">uniapp 开发 h5 授权微信登录(静默和非静默)</a>
                        <span class="text-muted">陈龙龙的陈龙龙</span>
<a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1/1.htm">微信</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>具体流程:进入h5➡️静默登录➡️请求登录接口➡️必要时候调起登录组件➡️点击按钮进行非静默登录➡️再次请求登录接口➡️获取到所有用户数据一、封装登录functionauthLogin:(callback)=>{constthat=this;//判断是否是在微信环境下运行if(utils.isWechat()){consttoken=window.localStorage.getItem('__t</div>
                    </li>
                    <li><a href="/article/1881753065657266176.htm"
                           title="关于ArcEngine10二次开发,如何在插件窗体内实现如同ArcMap一样的保存数据对话框功能(附源码)" target="_blank">关于ArcEngine10二次开发,如何在插件窗体内实现如同ArcMap一样的保存数据对话框功能(附源码)</a>
                        <span class="text-muted">装疯迷窍_A</span>
<a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/arcgis/1.htm">arcgis</a>
                        <div>关于ArcEngine10二次开发,如何在插件窗体内实现如上图所示的与ArcMap一样的保存数据对话框功能?首先,Windows窗体工具箱的SaveFileDialog对话框肯定不行,此对话框虽然可以自定义文件保存类型(保存shp文件可以),但是无法保存MDB和GDB数据库文件。其次,在网上找了很久,都未找到问题的解决方案。本着求人不如求己的原则,最后还是通过查询ArcObjectsHelpfor</div>
                    </li>
                    <li><a href="/article/1881750673159155712.htm"
                           title="微信小程序通用静默获取openid和Session_key" target="_blank">微信小程序通用静默获取openid和Session_key</a>
                        <span class="text-muted">TurboMT</span>
<a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/openid/1.htm">openid</a>
                        <div>小程序公共app.js代码//app.jsconstserver=require('./server/server.js');App({onLaunch:function(){//展示本地存储能力varlogs=wx.getStorageSync('logs')||[]logs.unshift(Date.now())wx.setStorageSync('logs',logs)//登录wx.chec</div>
                    </li>
                    <li><a href="/article/1881739444868935680.htm"
                           title="GUI窗口恶搞程序(备份)" target="_blank">GUI窗口恶搞程序(备份)</a>
                        <span class="text-muted">Cc_zhH</span>
<a class="tag" taget="_blank" href="/search/GUI%E7%99%BB%E5%BD%95%E7%AA%97%E5%8F%A3/1.htm">GUI登录窗口</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>注意:仅供娱乐!关闭按钮在左上角,最拐角处!不得做盈利行为!fromidlelib.configdialogimporttracersfromtkinterimport*fromtkinterimportmessageboximporttimefromtkinterimportttkfromtkinterimportENDimportthreadingimportrandomimportstrin</div>
                    </li>
                    <li><a href="/article/1881739191260344320.htm"
                           title="GUI登录界面" target="_blank">GUI登录界面</a>
                        <span class="text-muted">Cc_zhH</span>
<a class="tag" taget="_blank" href="/search/GUI%E5%BC%80%E5%8F%91/1.htm">GUI开发</a><a class="tag" taget="_blank" href="/search/GUI%E7%99%BB%E5%BD%95%E7%AA%97%E5%8F%A3/1.htm">GUI登录窗口</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>源代码部分importrandomfromtkinterimport*fromtkinterimportmessageboxdefname_12():button1.place_forget()entry1.place_forget()button2.place_forget()entry2.place_forget()button3.place_forget()entry3.place_forg</div>
                    </li>
                    <li><a href="/article/1881733639478243328.htm"
                           title="Python的Tkinter模块" target="_blank">Python的Tkinter模块</a>
                        <span class="text-muted">Cc_zhH</span>
<a class="tag" taget="_blank" href="/search/GUI%E5%BC%80%E5%8F%91/1.htm">GUI开发</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>大纲Tkinte组件在Python的Tkinter模块中,有许多组件可用于构建图形用户界面。下面是一些常用的Tkinter组件,并将它们以表格形式展示,同时提供简要的说明。组件名称描述用途Tk主窗口类,用于创建应用程序的主窗口。创建应用程序的主界面。Frame容器组件,用于组织其他组件。组织界面布局,将相关组件组合在一起。Button按钮组件,用于触发事件。创建用户交互的按钮。Label标签组件,</div>
                    </li>
                    <li><a href="/article/1881711319988629504.htm"
                           title="安卓副屏开发Presentation" target="_blank">安卓副屏开发Presentation</a>
                        <span class="text-muted">guodashen007</span>
<a class="tag" taget="_blank" href="/search/Android%E7%B2%BE%E5%8D%8E%E6%95%99%E7%A8%8B/1.htm">Android精华教程</a><a class="tag" taget="_blank" href="/search/%E5%89%AF%E5%B1%8F/1.htm">副屏</a>
                        <div>通过源码可得知publicclassPresentationextendsDialog,Presentation继承于dialog,依托于Activity存在新建一个PresentationpublicclassDifferentDislayextendsPresentation{publicstaticCameraPreviewcameraView2;privateContextmContext</div>
                    </li>
                    <li><a href="/article/1881703752822484992.htm"
                           title="Android Rxjava3 使用场景" target="_blank">Android Rxjava3 使用场景</a>
                        <span class="text-muted">2401_89760309</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                        <div>Observable>>hotKey=ApiManager.getInstance().getApiService().getHotKey();Observable.just(articleList).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).map(newFunction,Observable>></div>
                    </li>
                    <li><a href="/article/1881679916357971968.htm"
                           title="sui框架 点击图片 放大显示" target="_blank">sui框架 点击图片 放大显示</a>
                        <span class="text-muted">jiidd</span>

                        <div>$(function(){$.init();$(document).on('click','.albumImgs',function(){varpic=$(this).parent().find(".albumImgs").map(function(){return$(this).data("src");}).get();$.photoBrowser({photos:pic,//注意此处是数组[]</div>
                    </li>
                    <li><a href="/article/1881660099445977088.htm"
                           title="tkinter中text属性_tkinter属性(总结)" target="_blank">tkinter中text属性_tkinter属性(总结)</a>
                        <span class="text-muted">俠之大者</span>
<a class="tag" taget="_blank" href="/search/tkinter%E4%B8%ADtext%E5%B1%9E%E6%80%A7/1.htm">tkinter中text属性</a>
                        <div>一、主要控件1.Button按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作事件2.Canvas画布。提供绘图功能(直线、椭圆、多边形、矩形)可以包含图形或位图3.Checkbutton选择按钮。一组方框,可以选择其中的任意个(类似HTML中的checkbox)4.Entry文本框。单行文字域,用来收集键盘输入(类似HTML中的text)5.Frame框架。包含其他组件的纯容</div>
                    </li>
                    <li><a href="/article/1881659721472077824.htm"
                           title="python创建按钮command怎么用_python图形界面tk 1.4 按钮(Button)" target="_blank">python创建按钮command怎么用_python图形界面tk 1.4 按钮(Button)</a>
                        <span class="text-muted">weixin_39955825</span>

                        <div>创建按钮和设置它们的文本属性#!/usr/bin/envpython#-*-coding:utf-8-*-importtkinterastkfromtkinterimportttkwin=tk.Tk()win.title("PythonGUI")#添加标题aLabel=ttk.Label(win,text="ALabel")#创建一个标签,text:显示标签的内容aLabel.grid(colum</div>
                    </li>
                    <li><a href="/article/1881653916244963328.htm"
                           title="(14)Chainlink VRF(可验证随机函数)详细介绍" target="_blank">(14)Chainlink VRF(可验证随机函数)详细介绍</a>
                        <span class="text-muted">xluo1715</span>
<a class="tag" taget="_blank" href="/search/solidity/1.htm">solidity</a><a class="tag" taget="_blank" href="/search/chainlink/1.htm">chainlink</a><a class="tag" taget="_blank" href="/search/VRF/1.htm">VRF</a><a class="tag" taget="_blank" href="/search/%E5%8C%BA%E5%9D%97%E9%93%BE/1.htm">区块链</a><a class="tag" taget="_blank" href="/search/DAPP/1.htm">DAPP</a><a class="tag" taget="_blank" href="/search/web3/1.htm">web3</a>
                        <div>ChainlinkVRF(VerifiableRandomFunction)是Chainlink提供的一种去中心化随机数生成服务,专为智能合约设计。它通过加密技术生成随机数,并确保随机数的不可预测性和可验证性。以下是ChainlinkVRF的详细介绍,包括其作用、用法、工作原理以及实际应用。1.ChainlinkVRF的作用ChainlinkVRF的主要作用是为智能合约提供可验证的、不可预测的随机</div>
                    </li>
                    <li><a href="/article/1881614574172565504.htm"
                           title="[前端算法]动态规划" target="_blank">[前端算法]动态规划</a>
                        <span class="text-muted">摇光93</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92/1.htm">动态规划</a>
                        <div>最优子结构,重叠子问题爬楼梯递归+记忆化搜索自顶向下varclimbStairs=function(n){letmap=[]functiondfs(n){if(n=coins[j]){dp[i]=Math.min(dp[i],dp[i-coins[j]]+1);}}}if(dp[amount]===Infinity){return-1;}returndp[amount];}01背包问题functi</div>
                    </li>
                    <li><a href="/article/1881550594754277376.htm"
                           title="函数尾调用优化" target="_blank">函数尾调用优化</a>
                        <span class="text-muted"></span>

                        <div>尾调用在编码过程中,经常涉及到函数调用函数,例如:functiona(){b();}functionb(){}我们每次调用函数,都会在在内存中记录一个“调用帧”又成为“栈帧空间”在上述例子中,调用a()函数,会在内存中记录一个调用栈,然后继续调用b()函数,此时在内存中又会记录一个调用帧,等到b()函数运行结束,调用帧a、b的内存才会释放。我们可以利用“尾调用”来释放调用帧内存functiona(</div>
                    </li>
                    <li><a href="/article/1881547465581195264.htm"
                           title="unity转微信小游戏:自定义分享标题和分享图片" target="_blank">unity转微信小游戏:自定义分享标题和分享图片</a>
                        <span class="text-muted">会潜水的小火龙</span>
<a class="tag" taget="_blank" href="/search/unity%E8%BD%AC%E5%BE%AE%E4%BF%A1%E5%B0%8F%E6%B8%B8%E6%88%8F/1.htm">unity转微信小游戏</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a>
                        <div>unity转微信小游戏:自定义分享标题和分享图片代码使用方法代码//获取微信小程序分享参数更改为自己的分享标题和分享图片publicvoidOnShareAppMessage(boolisListen=true,stringimageUrl="",stringtitle="",stringquery=""){if(isListen){WX.ShowShareMenu(newShowShareMen</div>
                    </li>
                    <li><a href="/article/1881515926831034368.htm"
                           title="Java8关于Function接口" target="_blank">Java8关于Function接口</a>
                        <span class="text-muted">Acndy233</span>
<a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0java%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B/1.htm">学习java高级编程</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Function%E6%8E%A5%E5%8F%A3/1.htm">Function接口</a>
                        <div>Java学习-Function接口1函数式接口简介和学习地址2两种常见的函数式接口2.1Runnable:执行接口,不接收参数,也无返回结果。2.2Consumer:作为消费接口,接收一个参数,无返回结果。3初识3.1定义Function接口3.1.1定义`ThrowExceptionClass`Function`接口`3.1.2定义`BranchHandleDemo`Function`接口`3.</div>
                    </li>
                    <li><a href="/article/1881512522008293376.htm"
                           title="Java 函数接口BiFunction与BinaryOperator简介与示例【函数式编程】【Stream】" target="_blank">Java 函数接口BiFunction与BinaryOperator简介与示例【函数式编程】【Stream】</a>
                        <span class="text-muted">Java编程乐园</span>
<a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0%E6%8E%A5%E5%8F%A3/1.htm">函数接口</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>Java8引入了一种新的函数式编程风格,Function接口是Java函数式编程中最重要的四个函数式接口之一。函数接口BiFunction,它是Function接口的扩展版本。BinaryOperator也是Java8中引入的一个函数式接口,位于java.util.function包中。它是一个特殊的BiFunction,用于表示接受两个相同类型的参数并返回相同类型结果的操作。该接口定义了一个ap</div>
                    </li>
                    <li><a href="/article/1881510124841922560.htm"
                           title="java8 Function函数式接口学习" target="_blank">java8 Function函数式接口学习</a>
                        <span class="text-muted">墨笙弘一</span>
<a class="tag" taget="_blank" href="/search/JAVA/1.htm">JAVA</a><a class="tag" taget="_blank" href="/search/java8/1.htm">java8</a><a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0%E5%BC%8F%E6%8E%A5%E5%8F%A3/1.htm">函数式接口</a><a class="tag" taget="_blank" href="/search/Function/1.htm">Function</a>
                        <div>/***表示一个函数,它接收一个参数并且返回一个结果。*这是一个函数式接口,它有一个重要的方法是apply(Object)*@param函数的输入类型*@param函数结果的类型*@since1.8*/@FunctionalInterfacepublicinterfaceFunction{/***将该方法应用到指定的参数上*@paramt函数参数*@return返回函数的结果*/Rapply(Tt</div>
                    </li>
                    <li><a href="/article/1881506338090053632.htm"
                           title="Function.identity()的使用详解" target="_blank">Function.identity()的使用详解</a>
                        <span class="text-muted">Evan Wang</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/lambda/1.htm">lambda</a><a class="tag" taget="_blank" href="/search/stream/1.htm">stream</a>
                        <div>一、Function.identity()简单介绍当我们使用Stream时,要将它转换成其他容器或Map。这时候,就会使用到Function.identity()。Streamstream=Stream.of("This","is","a","test");Mapmap=stream.collect(Collectors.toMap(Function.identity(),String::leng</div>
                    </li>
                    <li><a href="/article/1881489301104029696.htm"
                           title="Java:函数式(Functional)接口" target="_blank">Java:函数式(Functional)接口</a>
                        <span class="text-muted">我是小水水啊</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录1什么是函数式接口2如何理解函数式接口3举例Java内置函数式接口1之前的函数式接口2四大核心函数式接口3.4.3其它接口内置接口代码演示5练习1什么是函数式接口只包含一个抽象方法(SingleAbstractMethod,简称SAM)的接口,称为函数式接口。当然该接口可以包含其他非抽象方法。你可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常(即:非运行</div>
                    </li>
                    <li><a href="/article/1881484383932706816.htm"
                           title="Java 函数接口Function详解与示例【函数接口Function】" target="_blank">Java 函数接口Function详解与示例【函数接口Function】</a>
                        <span class="text-muted">Java编程乐园</span>
<a class="tag" taget="_blank" href="/search/%E5%87%BD%E6%95%B0%E6%8E%A5%E5%8F%A3/1.htm">函数接口</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>Java8引入了一种新的函数式编程风格,Function接口是Java函数式编程中最重要的四个函数式接口之一。Function函数式接口实现的功能:接受一个输入参数,然后产生一个输出结果。Function接口在java.util.function包中定义,它的源码如下:packagejava.util.function;importjava.util.Objects;@FunctionalInte</div>
                    </li>
                    <li><a href="/article/1881482365151277056.htm"
                           title="function isBulkReadStatement, file SQLiteDatabaseTracking.cpp" target="_blank">function isBulkReadStatement, file SQLiteDatabaseTracking.cpp</a>
                        <span class="text-muted">丁乾坤的博客</span>
<a class="tag" taget="_blank" href="/search/iOS%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98/1.htm">iOS常见问题</a><a class="tag" taget="_blank" href="/search/Xcode16/1.htm">Xcode16</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/ios18%E9%97%AA%E9%80%80/1.htm">ios18闪退</a>
                        <div>一问题:Xcode16.0运行在iPhone16/ios18.0以上发生闪退,闪退在YYCache–>YYKVStorage文件内。以上删除保以下错误:functionisBulkReadStatement,fileSQLiteDatabaseTracking.cpp解决方案:找到YYKVStorage文件中_dbClose方法替换里面的一行代码:-(BOOL)_dbClose{//if(_dbS</div>
                    </li>
                    <li><a href="/article/1881471764609953792.htm"
                           title="【DAY.2】PHP数据结构与算法_排序_冒泡排序" target="_blank">【DAY.2】PHP数据结构与算法_排序_冒泡排序</a>
                        <span class="text-muted">我是妖怪_</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A9%E5%A4%A9%E5%AD%A6%E4%B9%A0/1.htm">天天学习</a><a class="tag" taget="_blank" href="/search/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F/1.htm">冒泡排序</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a>
                        <div>思路分析:循环逐个对比,从第一个开始,与下一个数字进行对比,若大于则交换位置,每循环一遍将最大的一个排到最后。(依次比较相邻的元素,两两比较,就可以最终将最大(小)的元素调整到最顶端、次顶端、、、)$arr=array(3,2,5,6,1,8,4,9);functionbubble_sort($arr){$len=count($arr);//判断数组是否为空if($len$arr[$i+1]){$</div>
                    </li>
                    <li><a href="/article/1881450078925811712.htm"
                           title="Python二进制模式打开文件open()" target="_blank">Python二进制模式打开文件open()</a>
                        <span class="text-muted">牧文山</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>我们看到了在文件打开模式中有以下模式:rb、wb……有这种带b的。什么意思呢?就是用二进制的方式打开文件。#1.只读模式打开文件f1=open('d:\\infile.txt')#2.写模式打开文件f2=open('output.txt','w')#3.以二进制写模式打开文件f3=open('record.dat','wb',0)open()函数-modeModeFunctionr以读模式打开w以</div>
                    </li>
                    <li><a href="/article/1881422185856299008.htm"
                           title="费希尔(FISHER)阀门定位器DVC6000调试步骤" target="_blank">费希尔(FISHER)阀门定位器DVC6000调试步骤</a>
                        <span class="text-muted">冶金仪表圈</span>
<a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E8%B0%83%E8%8A%82%E9%98%80/1.htm">调节阀</a><a class="tag" taget="_blank" href="/search/%E8%B0%83%E8%8A%82%E9%98%80/1.htm">调节阀</a><a class="tag" taget="_blank" href="/search/%E6%94%B9%E9%80%A0/1.htm">改造</a>
                        <div>DVC6000调试步骤:打开275/375手操器从主菜单(MainMenu)选择Hart应用(HARTApplication)从Online找到该定位器。依次进入Setup&Diag——DetailedSetup——Mode——InstumentMode(或者按手操器上快捷键直接进入)——警告!inservice模式被送到仪表当中时阀门也许会动(WARNING!Valvemaymovewhenin</div>
                    </li>
                    <li><a href="/article/1881364395049676800.htm"
                           title="25.01.15 SpringSecurity 授权" target="_blank">25.01.15 SpringSecurity 授权</a>
                        <span class="text-muted">2401_87910368</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>//准备工作在登录通过username查询用户时,把用户对应的角色即角色对应的菜单查出,//根据用户的角色rolerid来查询对应的菜单publicinterfaceAdminMenuDaoextendsBaseMapper{@Select("SELECTm.*FROMadmin_menum,rel_role_menurelWHEREm.mid=rel.midANDrel.rid=#{id}")L</div>
                    </li>
                    <li><a href="/article/1881311807231029248.htm"
                           title="JavaScript的那些不可不知的知识" target="_blank">JavaScript的那些不可不知的知识</a>
                        <span class="text-muted">遇见~未来</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>目录JavaScript基础JavaScript高级JavaScript基础数据类型:JavaScript的数据类型分为基本数据类型和引用数据类型。基本数据类型包含number(数字)、string(字符串)、boolean(布尔值)、null(空值)、undefined(未定义)。而像array(数组)、function(函数)等则属于引用数据类型。在内存存储方面,基本类型是按值存储在栈中,引用</div>
                    </li>
                    <li><a href="/article/1881271041238560768.htm"
                           title="第三方库的编译" target="_blank">第三方库的编译</a>
                        <span class="text-muted">weixin_30369041</span>
<a class="tag" taget="_blank" href="/search/c%2Fc%2B%2B/1.htm">c/c++</a>
                        <div>ACE的编译问题ACE链接时碰到下面一大堆错误:client-SSL-client.o:Infunction`ACE_SSL_SOCK_Stream::close()':../../../../ace/SSL/SSL_SOCK_Stream.i:278:undefinedreferenceto`SSL_shutdown'../../../../ace/SSL/SSL_SOCK_Stream.i:2</div>
                    </li>
                    <li><a href="/article/1881209455945773056.htm"
                           title="6-5.Android 对话框之 Fragment 中创建对话框的上下文对象的选择" target="_blank">6-5.Android 对话框之 Fragment 中创建对话框的上下文对象的选择</a>
                        <span class="text-muted">我命由我12345</span>
<a class="tag" taget="_blank" href="/search/Android/1.htm">Android</a><a class="tag" taget="_blank" href="/search/-/1.htm">-</a><a class="tag" taget="_blank" href="/search/%E7%AE%80%E5%8C%96%E7%BC%96%E7%A8%8B/1.htm">简化编程</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/java-ee/1.htm">java-ee</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/android-studio/1.htm">android-studio</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/jetpack/1.htm">jetpack</a>
                        <div>一、对话框对话框(Dialog)是一种常用的UI组件,它主要用于显示信息、接收用户操作反馈对话框可以包含各种元素,但是主要还是以文本、按钮为主,其次是列表其中,基础对话框是Android中最简单的对话框,而后是进度对话框、自定义对话框等二、Fragment中的上下文对象在Android开发中,Fragment是用于在Activity中表示或管理界面的一部分的一个组件在Fragment中,可能会需要</div>
                    </li>
                                <li><a href="/article/70.htm"
                                       title="PHP如何实现二维数组排序?" target="_blank">PHP如何实现二维数组排序?</a>
                                    <span class="text-muted">IT独行者</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%8E%92%E5%BA%8F%E3%80%80/1.htm">排序 </a>
                                    <div>二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,(一维数组排序可以参考本站另一篇文章【PHP中数组排序函数详解汇总】)。二维数组的排序需要我们自己写函数处理了,这里UncleToo给大家分享一个PHP二维数组排序的函数: 
代码: 
functionarray_sort($arr,$keys,$type='asc'){
$keysvalue= $new_arr</div>
                                </li>
                                <li><a href="/article/197.htm"
                                       title="【Hadoop十七】HDFS HA配置" target="_blank">【Hadoop十七】HDFS HA配置</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a>
                                    <div>基于Zookeeper的HDFS HA配置主要涉及两个文件,core-site和hdfs-site.xml。 
  
测试环境有三台 
hadoop.master 
hadoop.slave1 
hadoop.slave2 
  
hadoop.master包含的组件NameNode, JournalNode, Zookeeper,DFSZKFailoverController</div>
                                </li>
                                <li><a href="/article/324.htm"
                                       title="由wsdl生成的java vo类不适合做普通java vo" target="_blank">由wsdl生成的java vo类不适合做普通java vo</a>
                                    <span class="text-muted">darrenzhu</span>
<a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/wsdl/1.htm">wsdl</a><a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a>
                                    <div>开发java webservice项目时,如果我们通过SOAP协议来输入输出,我们会利用工具从wsdl文件生成webservice的client端类,但是这里面生成的java data model类却不适合做为项目中的普通java vo类来使用,当然有一中情况例外,如果这个自动生成的类里面的properties都是基本数据类型,就没问题,但是如果有集合类,就不行。原因如下: 
1)使用了集合如Li</div>
                                </li>
                                <li><a href="/article/451.htm"
                                       title="JAVA海量数据处理之二(BitMap)" target="_blank">JAVA海量数据处理之二(BitMap)</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/bitmap/1.htm">bitmap</a><a class="tag" taget="_blank" href="/search/bitset/1.htm">bitset</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE/1.htm">数据</a>
                                    <div>         路漫漫其修远兮,吾将上下而求索。想要更快,就要深入挖掘 JAVA 基础的数据结构,从来分析出所编写的 JAVA 代码为什么把内存耗尽,思考有什么办法可以节省内存呢?   啊哈!算法。这里采用了 BitMap 思想。  
   
首先来看一个实验:  
指定 VM 参数大小: -Xms256m -Xmx540m </div>
                                </li>
                                <li><a href="/article/578.htm"
                                       title="java类型与数据库类型" target="_blank">java类型与数据库类型</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>很多时候我们用hibernate的时候往往并不是十分关心数据库类型和java类型的对应关心,因为大多数hbm文件是自动生成的,但有些时候诸如:数据库设计、没有生成工具、使用原始JDBC、使用mybatis(ibatIS)等等情况,就会手动的去对应数据库与java的数据类型关心,当然比较简单的数据类型即使配置错了也会很快发现问题,但有些数据类型却并不是十分常见,这就给程序员带来了很多麻烦。 
&nb</div>
                                </li>
                                <li><a href="/article/705.htm"
                                       title="Linux命令" target="_blank">Linux命令</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/linux%E5%91%BD%E4%BB%A4/1.htm">linux命令</a>
                                    <div>系统信息 
arch 显示机器的处理器架构(1) 
uname -m 显示机器的处理器架构(2) 
uname -r 显示正在使用的内核版本 
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
hdparm -i /dev/hda 罗列一个磁盘的架构特性 
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
cat /proc/cpuinfo 显示C</div>
                                </li>
                                <li><a href="/article/832.htm"
                                       title="java常用JVM参数" target="_blank">java常用JVM参数</a>
                                    <span class="text-muted">墙头上一根草</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm%E5%8F%82%E6%95%B0/1.htm">jvm参数</a>
                                    <div>-Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制 
-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制 
-Xmn:新生代的内存空间大小,注意:此处的大小是(eden+ 2</div>
                                </li>
                                <li><a href="/article/959.htm"
                                       title="我的spring学习笔记9-Spring使用工厂方法实例化Bean的注意点" target="_blank">我的spring学习笔记9-Spring使用工厂方法实例化Bean的注意点</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/Spring+3/1.htm">Spring 3</a>
                                    <div>方法一:

    <bean id="musicBox" class="onlyfun.caterpillar.factory.MusicBoxFactory" 
    factory-method="createMusicBoxStatic"></bean>
    

    方法二:
   </div>
                                </li>
                                <li><a href="/article/1086.htm"
                                       title="mysql查询性能优化之二" target="_blank">mysql查询性能优化之二</a>
                                    <span class="text-muted">annan211</span>
<a class="tag" taget="_blank" href="/search/UNION/1.htm">UNION</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E8%AF%A2%E4%BC%98%E5%8C%96/1.htm">查询优化</a><a class="tag" taget="_blank" href="/search/%E7%B4%A2%E5%BC%95%E4%BC%98%E5%8C%96/1.htm">索引优化</a>
                                    <div>

1 union的限制
  有时mysql无法将限制条件从外层下推到内层,这使得原本能够限制部分返回结果的条件无法应用到内层
  查询的优化上。
  如果希望union的各个子句能够根据limit只取部分结果集,或者希望能够先排好序在
  合并结果集的话,就需要在union的各个子句中分别使用这些子句。
  
  例如 想将两个子查询结果联合起来,然后再取前20条记录,那么mys</div>
                                </li>
                                <li><a href="/article/1213.htm"
                                       title="数据的备份与恢复" target="_blank">数据的备份与恢复</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%81%A2%E5%A4%8D/1.htm">数据恢复</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%A4%87%E4%BB%BD/1.htm">数据备份</a>
                                    <div> 数据的备份与恢复的方式有: 表,方案 ,数据库; 
  
  
数据的备份: 
导出到的常见命令; 
参数                        说明
USERID         确定执行导出实用程序的用户名和口令
BUFFER        确定导出数据时所使用的缓冲区大小,其大小用字节表示
FILE               指定导出的二进制文</div>
                                </li>
                                <li><a href="/article/1340.htm"
                                       title="线程组" target="_blank">线程组</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/thread/1.htm">thread</a><a class="tag" taget="_blank" href="/search/java%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">java多线程</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E7%A8%8B%E7%BB%84/1.htm">线程组</a>
                                    <div>有些程序包含了相当数量的线程。这时,如果按照线程的功能将他们分成不同的类别将很有用。 
       线程组可以用来同时对一组线程进行操作。 
       创建线程组:ThreadGroup g = new ThreadGroup(groupName); 
 &nbs</div>
                                </li>
                                <li><a href="/article/1467.htm"
                                       title="top命令找到占用CPU最高的java线程" target="_blank">top命令找到占用CPU最高的java线程</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/top/1.htm">top</a>
                                    <div>上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 (1)使用top命令找出占用cpu最高的JAVA进程PID:28174 (2)如下命令找出占用cpu最高的线程 
top -Hp 28174 -d 1 -n 1
32694 root      20   0 3249m 2.0g  11m S    2  6.4   3:31.12 java         </div>
                                </li>
                                <li><a href="/article/1594.htm"
                                       title="【持久化框架MyBatis3四】MyBatis3一对一关联查询" target="_blank">【持久化框架MyBatis3四】MyBatis3一对一关联查询</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Mybatis3/1.htm">Mybatis3</a>
                                    <div>  
当两个实体具有1对1的对应关系时,可以使用One-To-One的进行映射关联查询 
  One-To-One示例数据 
以学生表Student和地址信息表为例,每个学生都有都有1个唯一的地址(现实中,这种对应关系是不合适的,因为人和地址是多对一的关系),这里只是演示目的 
  
学生表 
  
CREATE TABLE STUDENTS 
(
  </div>
                                </li>
                                <li><a href="/article/1721.htm"
                                       title="C/C++图片或文件的读写" target="_blank">C/C++图片或文件的读写</a>
                                    <span class="text-muted">bitcarter</span>
<a class="tag" taget="_blank" href="/search/%E5%86%99%E5%9B%BE%E7%89%87/1.htm">写图片</a>
                                    <div>先看代码: 
 
 

/*strTmpResult是文件或图片字符串
 * filePath文件需要写入的地址或路径
 */
int writeFile(std::string &strTmpResult,std::string &filePath)
{
    int i,len = strTmpResult.length();
    	unsigned cha</div>
                                </li>
                                <li><a href="/article/1848.htm"
                                       title="nginx自定义指定加载配置" target="_blank">nginx自定义指定加载配置</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>进入 /usr/local/nginx/conf/include 目录,创建 nginx.node.conf 文件,在里面输入如下代码:  
upstream nodejs {
    server 127.0.0.1:3000;
    #server 127.0.0.1:3001;
    keepalive 64;
}

server {
    liste</div>
                                </li>
                                <li><a href="/article/1975.htm"
                                       title="java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方" target="_blank">java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/double/1.htm">double</a>
                                    <div>

public class Power {

	/**
	 *Q71-数值的整数次方
	 *实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
	 */
	private static boolean InvalidInput=false;
	public static void main(</div>
                                </li>
                                <li><a href="/article/2102.htm"
                                       title="Android四大组件的理解" target="_blank">Android四大组件的理解</a>
                                    <span class="text-muted">Cb123456</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%9B%9B%E5%A4%A7%E7%BB%84%E4%BB%B6%E7%9A%84%E7%90%86%E8%A7%A3/1.htm">四大组件的理解</a>
                                    <div> 分享一下,今天在Android开发文档-开发者指南中看到的:          
         
          App components are the essential building blocks of an Android </div>
                                </li>
                                <li><a href="/article/2229.htm"
                                       title="[宇宙与计算]涡旋场计算与拓扑分析" target="_blank">[宇宙与计算]涡旋场计算与拓扑分析</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97/1.htm">计算</a>
                                    <div> 
 
     怎么阐述我这个理论呢? 。。。。。。。。。 
 
 
      首先: 宇宙是一个非线性的拓扑结构与涡旋轨道时空的统一体。。。。 
 
      我们要在宇宙中寻找到一个适合人类居住的行星,时间非常重要,早一个刻度和晚一个刻度,这颗行星的</div>
                                </li>
                                <li><a href="/article/2356.htm"
                                       title="同一个Tomcat不同Web应用之间共享会话Session" target="_blank">同一个Tomcat不同Web应用之间共享会话Session</a>
                                    <span class="text-muted">cwqcwqmax9</span>
<a class="tag" taget="_blank" href="/search/session/1.htm">session</a>
                                    <div>实现两个WEB之间通过session 共享数据 
 
查看tomcat 关于 HTTP Connector 中有个emptySessionPath 其解释如下: 
 
If set to true, all paths for session cookies will be set to /. This can be useful for portlet specification impleme</div>
                                </li>
                                <li><a href="/article/2483.htm"
                                       title="springmvc Spring3 MVC,ajax,乱码" target="_blank">springmvc Spring3 MVC,ajax,乱码</a>
                                    <span class="text-muted">dashuaifu</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a>
                                    <div>  
 springmvc Spring3 MVC @ResponseBody返回,jquery ajax调用中文乱码问题解决       
Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHandlerAdapter类handleResponseBody方法,具体实</div>
                                </li>
                                <li><a href="/article/2610.htm"
                                       title="搭建WAMP环境" target="_blank">搭建WAMP环境</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/wamp/1.htm">wamp</a>
                                    <div>这里先解释一下WAMP是什么意思。W:windows,A:Apache,M:MYSQL,P:PHP。也就是说本文说明的是在windows系统下搭建以apache做服务器、MYSQL为数据库的PHP开发环境。  
    工欲善其事,必须先利其器。因为笔者的系统是WinXP,所以下文指的系统均为此系统。笔者所使用的Apache版本为apache_2.2.11-</div>
                                </li>
                                <li><a href="/article/2737.htm"
                                       title="yii2 使用raw http request" target="_blank">yii2 使用raw http request</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/http/1.htm">http</a>
                                    <div>Parses a raw HTTP request using yii\helpers\Json::decode() 
  
To enable parsing for JSON requests you can configure yii\web\Request::$parsers using this class: 
'request' =&g</div>
                                </li>
                                <li><a href="/article/2864.htm"
                                       title="Quartz-1.8.6 理论部分" target="_blank">Quartz-1.8.6 理论部分</a>
                                    <span class="text-muted">eksliang</span>
<a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a>
                                    <div>转载请出自出处:http://eksliang.iteye.com/blog/2207691 一.概述 
基于Quartz-1.8.6进行学习,因为Quartz2.0以后的API发生的非常大的变化,统一采用了build模式进行构建; 
什么是quartz? 
  
答:简单的说他是一个开源的java作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。并且还能和Sp</div>
                                </li>
                                <li><a href="/article/2991.htm"
                                       title="什么是POJO?" target="_blank">什么是POJO?</a>
                                    <span class="text-muted">gupeng_ie</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a>
                                    <div>POJO--Plain Old Java Objects(简单的java对象) 
  
POJO是一个简单的、正规Java对象,它不包含业务逻辑处理或持久化逻辑等,也不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。 
  
POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hiber</div>
                                </li>
                                <li><a href="/article/3118.htm"
                                       title="jQuery网站顶部定时折叠广告" target="_blank">jQuery网站顶部定时折叠广告</a>
                                    <span class="text-muted">ini</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>效果体验:http://hovertree.com/texiao/jquery/4.htmHTML文件代码: 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>网页顶部定时收起广告jQuery特效 - HoverTree<</div>
                                </li>
                                <li><a href="/article/3245.htm"
                                       title="Spring boot内嵌的tomcat启动失败" target="_blank">Spring boot内嵌的tomcat启动失败</a>
                                    <span class="text-muted">kane_xie</span>
<a class="tag" taget="_blank" href="/search/spring+boot/1.htm">spring boot</a>
                                    <div>根据这篇guide创建了一个简单的spring boot应用,能运行且成功的访问。但移植到现有项目(基于hbase)中的时候,却报出以下错误: 
  
  
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.Lif</div>
                                </li>
                                <li><a href="/article/3372.htm"
                                       title="leetcode: sort list" target="_blank">leetcode: sort list</a>
                                    <span class="text-muted">michelle_0916</span>
<a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/linked+list/1.htm">linked list</a><a class="tag" taget="_blank" href="/search/sort/1.htm">sort</a>
                                    <div>Sort a linked list in O(n log n) time using constant space complexity. 
====analysis======= 
mergeSort for singly-linked list  
====code=======      /** 
 * Definition for sin</div>
                                </li>
                                <li><a href="/article/3499.htm"
                                       title="nginx的安装与配置,中途遇到问题的解决" target="_blank">nginx的安装与配置,中途遇到问题的解决</a>
                                    <span class="text-muted">qifeifei</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                                    <div>我使用的是ubuntu13.04系统,在安装nginx的时候遇到如下几个问题,然后找思路解决的,nginx 的下载与安装 
  
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar zxvf nginx-1.0.11.tar.gz
./configure
make
make install 
  
安装的时候出现</div>
                                </li>
                                <li><a href="/article/3626.htm"
                                       title="用枚举来处理java自定义异常" target="_blank">用枚举来处理java自定义异常</a>
                                    <span class="text-muted">tcrct</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/exception/1.htm">exception</a>
                                    <div>在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。 
 
1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage 
 

public </div>
                                </li>
                                <li><a href="/article/3753.htm"
                                       title="erlang supervisor分析" target="_blank">erlang supervisor分析</a>
                                    <span class="text-muted">wudixiaotie</span>
<a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a>
                                    <div>当我们给supervisor指定需要创建的子进程的时候,会指定M,F,A,如果是simple_one_for_one的策略的话,启动子进程的方式是supervisor:start_child(SupName, OtherArgs),这种方式可以根据调用者的需求传不同的参数给需要启动的子进程的方法。和最初的参数合并成一个数组,A ++ OtherArgs。那么这个时候就有个问题了,既然参数不一致,那</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>