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/1891947826292781056.htm"
                           title="leetcode简单(181-200)python" target="_blank">leetcode简单(181-200)python</a>
                        <span class="text-muted">九日火</span>
<a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>762.PrimeNumberofSetBitsinBinaryRepresentation(e-181)GiventwointegersLandR,findthecountofnumbersintherange[L,R](inclusive)havingaprimenumberofsetbitsintheirbinaryrepresentation.(Recallthatthenumberofs</div>
                    </li>
                    <li><a href="/article/1891941139729149952.htm"
                           title="Qt QOpenGLFunctions详解" target="_blank">Qt QOpenGLFunctions详解</a>
                        <span class="text-muted">码农客栈_V13427279549</span>
<a class="tag" taget="_blank" href="/search/Qt/1.htm">Qt</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a>
                        <div>1.概述QOpenGLFunctions是Qt提供的一个工具类,用于封装OpenGL的函数调用。它使得在Qt应用程序中使用OpenGL更加方便和安全,同时提供了跨平台的兼容性。通过继承QOpenGLFunctions,开发者可以轻松地访问OpenGL的核心功能,而无需直接调用原生的OpenGLAPI。QOpenGLFunctions提供了大量封装的OpenGL函数,这些函数与OpenGL的原生函数</div>
                    </li>
                    <li><a href="/article/1891919941989363712.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/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%A4%96%E8%A7%82%E6%A8%A1%E5%BC%8F/1.htm">外观模式</a>
                        <div>参考书籍:JavaScript设计模式外观模式:为一组复杂的子系统接口提供一个更高级的统一接口,使更加容易的访问子系统对底层结构兼容性做封装functionaddEvent(dom,type,fn){//if(dom.addEventListener){dom.addEventListener(type,fn,false);//}elseif(dom.attachEvent){dom.attach</div>
                    </li>
                    <li><a href="/article/1891908963109236736.htm"
                           title="亚远景-ASPICE 4.0-HWE半导体验证类型" target="_blank">亚远景-ASPICE 4.0-HWE半导体验证类型</a>
                        <span class="text-muted">亚远景aspice</span>
<a class="tag" taget="_blank" href="/search/ASPICE/1.htm">ASPICE</a>
                        <div>1.Pre-SiliconVerification•功能验证FunctionalVerification:-使用仿真工具对设计进行功能验证,确保设计逻辑符合规格要求。-开发测试平台并编写测试用例,验证设计在各种输入条件下的行为。•形式验证FormalVerification:-通过数学方法验证设计的特性,确保设计在所有可能的输入条件下都能满足规范。-主要用于验证复杂的逻辑函数和状态机设计。•性能验</div>
                    </li>
                    <li><a href="/article/1891867810641014784.htm"
                           title="javascript 基础 insertAfter与insertBefore" target="_blank">javascript 基础 insertAfter与insertBefore</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/%E5%9F%BA%E7%A1%80/1.htm">基础</a>
                        <div>1.parent.insertBefore(newElement,targetElement.nextSibling)他的三部分为父节点新节点目标节点他会把新节点创建在目标节点之前需要注意的是父节点并无需获取你通过目标节点.parentNode就可以获取但是js并没有提供插入在目标节点之后的方法我们可以自己写一个functioninsertAfter(newElement,targetElemen</div>
                    </li>
                    <li><a href="/article/1891860624472862720.htm"
                           title="youtube new tools website" target="_blank">youtube new tools website</a>
                        <span class="text-muted">blogcs</span>
<a class="tag" taget="_blank" href="/search/youtube/1.htm">youtube</a><a class="tag" taget="_blank" href="/search/towav/1.htm">towav</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/webview/1.htm">webview</a>
                        <div>1.MainFunctionTheprimarypurposeofthissiteistoprovideuserswithaconvenientwaytoextracttheaudiofromYouTubevideosintheWAVformat.Thisisusefulforavarietyofreasons.Forexample,WAVisahigh-qualityaudioformattha</div>
                    </li>
                    <li><a href="/article/1891857976193511424.htm"
                           title="Implement Ridge Regression Loss Function" target="_blank">Implement Ridge Regression Loss Function</a>
                        <span class="text-muted">六月五日</span>
<a class="tag" taget="_blank" href="/search/Deep-ML/1.htm">Deep-ML</a><a class="tag" taget="_blank" href="/search/Deep-ML/1.htm">Deep-ML</a>
                        <div>ImplementRidgeRegressionLossFunctionWriteaPythonfunctionridge_lossthatimplementstheRidgeRegressionlossfunction.Thefunctionshouldtakea2DnumpyarrayXrepresentingthefeaturematrix,a1Dnumpyarraywrepresentin</div>
                    </li>
                    <li><a href="/article/1891847374981099520.htm"
                           title="vue基础七(Less)" target="_blank">vue基础七(Less)</a>
                        <span class="text-muted">今天晚上一定要早睡</span>
<a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/css3/1.htm">css3</a>
                        <div>Less安装注释导入变量(Variables)混合(Mixins)嵌套(Nesting)运算转义(Escaping)函数(Functions)命名空间和访问符映射作用域sass,less和stylussass变量的表示变量的赋值缩进的问题if条件判断的问题都支持嵌套Less(LeanerStyleSheets的缩写)是一门向后兼容的CSS扩展语言。安装将less安装为开发依赖npmiless--s</div>
                    </li>
                    <li><a href="/article/1891836267327451136.htm"
                           title="DRF框架使用djangorestframework-simplejwt实现自定义用户类的登录逻辑" target="_blank">DRF框架使用djangorestframework-simplejwt实现自定义用户类的登录逻辑</a>
                        <span class="text-muted">lj907722644</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><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/simplejwt/1.htm">simplejwt</a><a class="tag" taget="_blank" href="/search/token/1.htm">token</a>
                        <div>1.token校验生成并校验token,参考上一篇文章:https://blog.csdn.net/u013071014/article/details/144562716?spm=1001.2014.3001.55022.新建role、menu子模块新建role、menu这两个子模块在PyCharm->Tools->Runmanage.pyTask中执行命令#创建role子模块startappr</div>
                    </li>
                    <li><a href="/article/1891833866944049152.htm"
                           title="antd+React.js实现登陆页面,登陆注册页面" target="_blank">antd+React.js实现登陆页面,登陆注册页面</a>
                        <span class="text-muted">变向加后撤</span>
<a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a>
                        <div>今天制作登陆界面,本来想找开原的代码复制粘贴,但奈何网友们是在太过吝啬。找了半天,不如我来做这个开源。代码如下(登陆界面层级都比较分明,故不再做过多解释)importstylesfrom'./login.module.scss';import{Button,Checkbox,Form,Input,Tabs}from'antd';import{UserOutlined,MedicineBoxOutl</div>
                    </li>
                    <li><a href="/article/1891833236670181376.htm"
                           title="【react8】如何在网页中直接引入react进行demo开发" target="_blank">【react8】如何在网页中直接引入react进行demo开发</a>
                        <span class="text-muted">风清云淡_A</span>
<a class="tag" taget="_blank" href="/search/react.js/1.htm">react.js</a>
                        <div>babel在线cdn链接地址https://unpkg.com/browse/@babel/standalone@7.26.9/unpkg在线cdn链接地址https://unpkg.com/项目工程代码实现DocumentfunctionMyButton(){return{console.log("click")}}>Clickme}constroot=ReactDOM.createRoot(d</div>
                    </li>
                    <li><a href="/article/1891754714450685952.htm"
                           title="es6箭头函数和普通函数的区别" target="_blank">es6箭头函数和普通函数的区别</a>
                        <span class="text-muted">vvilkim</span>
<a class="tag" taget="_blank" href="/search/es6/1.htm">es6</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a>
                        <div>在JavaScript中,函数是执行特定任务的代码块。函数可以被定义并且随后被调用。JavaScript中有两种主要的函数定义方式:普通函数声明和箭头函数表达式。下面是这两种函数的定义方式及其区别和使用场景:普通函数声明普通函数可以通过函数声明或函数表达式的方式来定义。函数声明是最简单的方式,通常如下所示:function函数名(参数1,参数2,...){//函数体}示例:functiongree</div>
                    </li>
                    <li><a href="/article/1891752949319790592.htm"
                           title="收藏不迷路 —— Flutter 转场动效大合集" target="_blank">收藏不迷路 —— Flutter 转场动效大合集</a>
                        <span class="text-muted">岛上码农</span>
<a class="tag" taget="_blank" href="/search/Flutter%E5%8A%A8%E7%94%BB%E4%B8%93%E9%A2%98/1.htm">Flutter动画专题</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%BC%80%E5%8F%91/1.htm">移动端开发</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E5%B9%B3%E5%8F%B0/1.htm">跨平台</a><a class="tag" taget="_blank" href="/search/iOS/1.htm">iOS</a>
                        <div>前言动画经常会用于场景切换,比如滑动,缩放,尺寸变化,为应对这样的场景转换需要,Flutter提供了Transition系列的动画组件,可以让场景转换动画变得更加简单。本篇为你整理了常用的Transition组件的应用。CupertinoFullscreenDialogTransition名称显示是苹果风格的全屏对话转换动效,构造方法如下:CupertinoFullscreenDialogTran</div>
                    </li>
                    <li><a href="/article/1891749795463229440.htm"
                           title="async/await与Generator函数相比有什么区别?" target="_blank">async/await与Generator函数相比有什么区别?</a>
                        <span class="text-muted">编程微刊</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</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>
                        <div>async/await和Generator函数都是JavaScript中处理异步编程的重要工具,但它们在语法、使用方式和背后的机制上存在显著差异。以下是它们之间的主要区别:一、基本概念1.Generator函数Generator函数是通过function*关键字定义的特殊函数,可以暂停和恢复执行。它们返回一个迭代器对象,通过调用.next()方法逐步执行函数中的代码。示例function*gene</div>
                    </li>
                    <li><a href="/article/1891727338094260224.htm"
                           title="Docker下使用llama.cpp部署带Function calling和Json Mode功能的Mistral 7B模型" target="_blank">Docker下使用llama.cpp部署带Function calling和Json Mode功能的Mistral 7B模型</a>
                        <span class="text-muted">shizidushu</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/llama/1.htm">llama</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/llama.cpp/1.htm">llama.cpp</a><a class="tag" taget="_blank" href="/search/mistral-7b/1.htm">mistral-7b</a>
                        <div>Docker下使用llama.cpp部署带Functioncalling和JsonMode功能的Mistral7B模型说明:首次发表日期:2024-08-27参考:https://www.markhneedham.com/blog/2024/06/23/mistral-7b-function-calling-llama-cpp/https://github.com/abetlen/llama-cp</div>
                    </li>
                    <li><a href="/article/1891651868833148928.htm"
                           title="python tkinter 自制文本编辑器" target="_blank">python tkinter 自制文本编辑器</a>
                        <span class="text-muted">ocean35</span>
<a class="tag" taget="_blank" href="/search/tkinter/1.htm">tkinter</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">文本编辑器</a><a class="tag" taget="_blank" href="/search/tkinter/1.htm">tkinter</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>成品如图:代码fromtkinterimport*fromtkinterimportfiledialogfromtkinterimportmessageboximporttimedefnodefined():pass#打开文件函数defopenfile():filename=filedialog.askopenfilename()f=open(filename,'r')f2=f.read()f.c</div>
                    </li>
                    <li><a href="/article/1891646814675857408.htm"
                           title="Android VTS单模块测试问题处理" target="_blank">Android VTS单模块测试问题处理</a>
                        <span class="text-muted">漫步的傻瓜</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E5%9D%97%E6%B5%8B%E8%AF%95/1.htm">模块测试</a>
                        <div>目录1编译方式2.执行vts测试异常问题处理2.1解决办法2.2vts单模块测试正常运行的结果3编译报错:error:'xxxCallback::onCallback'hidesoverloadedvirtualfunction问题处理1编译方式在hardware模块下vts目录,编译命令举例如下:sourcebuild/envsetup.shlunch//这里选择要编译的项目mmmhardwar</div>
                    </li>
                    <li><a href="/article/1891636979590819840.htm"
                           title="html放大镜效果代码,原生JS实现的放大镜效果实例代码" target="_blank">html放大镜效果代码,原生JS实现的放大镜效果实例代码</a>
                        <span class="text-muted">看热闹不嫌事大菌</span>
<a class="tag" taget="_blank" href="/search/html%E6%94%BE%E5%A4%A7%E9%95%9C%E6%95%88%E6%9E%9C%E4%BB%A3%E7%A0%81/1.htm">html放大镜效果代码</a>
                        <div>js放大镜效果*{margin:0px;padding:0px;border:none;list-style:none;}#box{margin:80pxauto;width:352px;}#boxp{width:350px;height:350px;border:1pxsolid#ddd;margin-bottom:5px;}#boxpimg{width:350px;height:350px;}</div>
                    </li>
                    <li><a href="/article/1891636599310053376.htm"
                           title="Android开发笔记: 5种对话框案例" target="_blank">Android开发笔记: 5种对话框案例</a>
                        <span class="text-muted">程序猿的杂货店</span>
<a class="tag" taget="_blank" href="/search/Android%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0/1.htm">Android开发笔记</a><a class="tag" taget="_blank" href="/search/android%E5%BC%80%E5%8F%91%E7%AC%94%E8%AE%B0/1.htm">android开发笔记</a><a class="tag" taget="_blank" href="/search/PopupWindow/1.htm">PopupWindow</a><a class="tag" taget="_blank" href="/search/AlertDialog/1.htm">AlertDialog</a><a class="tag" taget="_blank" href="/search/ProgressDialog/1.htm">ProgressDialog</a>
                        <div>5种android对话框1弹出普通对话框---系统更新2自定义对话框--用户登录3时间选择对话框--时间对话框4进度条对话框--信息加载..5popuWindow对话框下载地址:http://download.csdn.net/download/taoerit/99651421弹出普通对话框---系统更新//弹出普通对话框publicvoidshowNormalDialog(Viewv){Aler</div>
                    </li>
                    <li><a href="/article/1891632434554925056.htm"
                           title="web第三次作业" target="_blank">web第三次作业</a>
                        <span class="text-muted">naodianbozzz</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>实现网页登入窗口的显示隐藏登录窗口滑动效果*{margin:0;padding:0;box-sizing:border-box;}html,body{width:100%;height:100%;}.container{width:100%;height:100%;background-color:#f2f1f2;}header{width:1200px;height:50px;backgroun</div>
                    </li>
                    <li><a href="/article/1891621083417735168.htm"
                           title="鸿蒙开发全局UI方法:【时间滑动选择器弹窗】" target="_blank">鸿蒙开发全局UI方法:【时间滑动选择器弹窗】</a>
                        <span class="text-muted">鸿蒙系统小能手Mr.Li</span>
<a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99%E5%BC%80%E5%8F%91/1.htm">鸿蒙开发</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/OpenHarmony/1.htm">OpenHarmony</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99%E7%B3%BB%E7%BB%9F/1.htm">鸿蒙系统</a><a class="tag" taget="_blank" href="/search/arkui/1.htm">arkui</a>
                        <div>时间滑动选择器弹窗以24小时的时间区间创建时间滑动选择器,展示在弹窗上。说明:该组件从APIVersion8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。本模块功能依赖UI的执行上下文,不可在UI上下文不明确的地方使用,参见[UIContext]说明。从APIversion10开始,可以通过使用[UIContext]中的[showTimePickerDialog]来明确UI</div>
                    </li>
                    <li><a href="/article/1891617049893990400.htm"
                           title="[ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案" target="_blank">[ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案</a>
                        <span class="text-muted">wellnw</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>问题log/tmp/ccByifPx.o:Infunction`main':read.c:(.text+0x1a):undefinedreferenceto`shm_open'read.c:(.text+0xd9):undefinedreferenceto`shm_unlink'collect2:error:ldreturned1exitstatus程序代码#include#include#inc</div>
                    </li>
                    <li><a href="/article/1891612628090941440.htm"
                           title="In function `main': testpcre.c:(.text+0x93): undefined reference to `pcre_compile' testpcre.c:(.tex" target="_blank">In function `main': testpcre.c:(.text+0x93): undefined reference to `pcre_compile' testpcre.c:(.tex</a>
                        <span class="text-muted">周杰伦今天喝奶茶了吗</span>
<a class="tag" taget="_blank" href="/search/Error/1.htm">Error</a><a class="tag" taget="_blank" href="/search/Unix/1.htm">Unix</a>
                        <div>从昨晚困扰我到现在的问题,终于解决了~~~先贴源程序testpcre.c#include#include#includeintmain(intargc,char**argv){if(argc!=3){printf("Usage:%spatterntext\n",argv[0]);return1;}constchar*pPattern=argv[1];constchar*pText=argv[2];</div>
                    </li>
                    <li><a href="/article/1891605665542107136.htm"
                           title="clang编译代码报错:`_start': (.text+0x24): undefined reference to `main'" target="_blank">clang编译代码报错:`_start': (.text+0x24): undefined reference to `main'</a>
                        <span class="text-muted">PandaMohist</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>1.说明使用clang++10.1编译报错:/usr/bin/ld:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crt1.o:infunction`_start':(.text+0x24):undefinedreferenceto`main'clang-10:error:linkercommandfailedwithexitc</div>
                    </li>
                    <li><a href="/article/1891603142257209344.htm"
                           title="(.text+0x1b): undefined reference to `main‘" target="_blank">(.text+0x1b): undefined reference to `main‘</a>
                        <span class="text-muted">༺࿈梦༒缘࿈༻</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a>
                        <div>使用vscodeLinuxg++编译出现/usr/bin/ld:/usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/Scrt1.o:infunction`_start':(.text+0x1b):undefinedreferenceto`main'collect2:error:ldreturned1exitstatusmake:**</div>
                    </li>
                    <li><a href="/article/1891553815996461056.htm"
                           title="js判断当前时间是否在指定范围内" target="_blank">js判断当前时间是否在指定范围内</a>
                        <span class="text-muted">i'm wxm</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</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>
                        <div>一、js判断当前时间是否在指定范围内利用js的Date对象,获得三个时间戳,分别为当前时间、开始时间、结束时间,通过比对当前时间是否在开始时间和结束时间之间,来判断是否在一个时间区间内方法一:functionisTimeInRange(startTime:any,endTime:any){//获取当前时间、开始时间、结束时间的时间戳constnow=newDate();constcurrentTi</div>
                    </li>
                    <li><a href="/article/1891543843539578880.htm"
                           title="React---高阶函数和函数柯里化的理解" target="_blank">React---高阶函数和函数柯里化的理解</a>
                        <span class="text-muted">lelara</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>一、高阶函数如果一个函数符合下面2个规范中的任何一个,那该函数就是高阶函数。1.若A函数,接收的参数是一个函数,那么A就可以称之为高阶函数。2.若A函数,调用的返回值依然是一个函数,那么A就可以称之为高阶函数。常见的高阶函数有:Promise、setTimeout、arr.map()等等二、函数柯里化通过函数调用继续返回函数的方式,实现多次接收参数最后统一处理的函数编码形式。functionsum</div>
                    </li>
                    <li><a href="/article/1891524633757282304.htm"
                           title="2021-04-15" target="_blank">2021-04-15</a>
                        <span class="text-muted">一般橙</span>
<a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>JQuery项目JS模块化分析(一)Jquery在线手册新增一个组件例按钮组件varYIUI=YIUI||{};(function(){//立即执行匿名函数,模拟模块化YIUI.Yes_Button=function(options){//匿名函数表达式varbtntemplate={el:$(""),caption:"按钮",init:function(){varself=this;var$in</div>
                    </li>
                    <li><a href="/article/1891500029219237888.htm"
                           title="怎么把pyqt界面做的像web一样漂亮" target="_blank">怎么把pyqt界面做的像web一样漂亮</a>
                        <span class="text-muted">mosquito_lover1</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pyqt/1.htm">pyqt</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>要将PyQt界面做得像网页一样漂亮,可以从以下几个方面入手:1.使用样式表(QSS)PyQt支持类似CSS的样式表(QSS),通过QSS可以自定义控件的外观。fromPyQt5.QtWidgetsimportQApplication,QPushButton,QWidget,QVBoxLayoutapp=QApplication([])window=QWidget()layout=QVBoxLayo</div>
                    </li>
                    <li><a href="/article/1891489803287982080.htm"
                           title="静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片" target="_blank">静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片</a>
                        <span class="text-muted">键盘侠007</span>
<a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a>
                        <div>这个问题可能有几个原因导致,我来分析一下并给出解决方案:首要问题是懒加载实现方式的兼容性问题。当前的懒加载实现可能在iOS上不够稳定。建议修改图片懒加载的实现方式://使用IntersectionObserverAPI实现懒加载functioninitLazyLoading(){constimageObserver=newIntersectionObserver((entries,observer</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>